关键字: aggregate
from django.db.models import Max,Min,Count,Sum,Avg
关键字:annotate
最简单的规律:models后面电视猫,就按什么分组
from django.db.modles import F,Q
F 能够帮助你获取到表中字段所对应的数据
# 书籍的库存数与卖出数
models.Book.objects.filter(kucun__gt=F('maichu'))
因为filter过滤的条件的都是and连接
modesls.Book.objects.filter(Q(title='python'),Q(price=666))
modesls.Book.objects.filter(Q(title='python')|Q(price=666))
modesls.Book.objects.filter(~Q(title='python')|Q(price=666))
# Q进阶用法
q = Q()
q.connector = 'or'
q.children.append(('title','python'))
q.children.append(('title__icontains','python'))
q.children.append(('price',666))
models.Book.objects.filter(q) # 默认还是and关系
from django.db import transaction
try:
with transaction.atomic():
#事务操作
except BaseException as e:
print(e)
AutoField()
DateField()
DateTimeField()
auto_now
auto_now_add
TextField()
EmailField() varchar(...)
BooleanField() 传布尔值 存0/1
class MyCharField(models.Field):
def db_type(self,connection):
return 'char(%s)'%self.max_length
only
defer
orm内所有的语句操作 都是惰性查询:只会在你真正需要数据的时候才会走数据库,如果你单单只写orm语句时不会走数据库的
select_related:会将括号内外键字段所关联的那张表 直接全部拿过来(可以一次性拿多张表)跟当前表拼接操作
prefetch_related:不主动连表而是将book表中的publish全部拿出来 在取publish表中将id对应的所有的数据取出
原文:https://www.cnblogs.com/aden668/p/11753145.html