filter(键1=值1,键2=值2)
等价于
filter(键1=值1).filter(键2=值2)限制查询集
查询集的缓存
print([e.title for e in Entry.objects.all()])
print([e.title for e in Entry.objects.all()])querylist=Entry.objects.all()
print([e.title for e in querylist])
print([e.title for e in querylist])比较运算符
filter(isDelete=False)exclude(btitle__contains='传')exclude(btitle__endswith='传')filter(btitle__isnull=False)filter(pk__in=[1, 2, 3, 4, 5])filter(id__gt=3)filter(bpub_date__year=1980)
filter(bpub_date__gt=date(1980, 12, 31))filter(heroinfo_ _hcontent_ _contains='八')filter(pk__lt=6)聚合函数
from django.db.models import Max
maxDate = list.aggregate(Max('bpub_date'))count = list.count()F对象
list.filter(bread__gte=F('bcommet'))list.filter(bread__gte=F('bcommet') * 2)list.filter(isDelete=F('heroinfo__isDelete'))list.filter(bpub_date__lt=F('bpub_date') + timedelta(days=1))Q对象
from django.db.models import Q
list.filter(Q(pk_ _lt=6))list.filter(pk_ _lt=6).filter(bcommet_ _gt=10)
list.filter(Q(pk_ _lt=6) | Q(bcommet_ _gt=10))list.filter(~Q(pk__lt=6))class AreaInfo(models.Model):
atitle = models.CharField(max_length=20)
aParent = models.ForeignKey('self', null=True, blank=True)上级对象:area.aParent
下级对象:area.areainfo_set.all()from models import AreaInfo
def area(request):
area = AreaInfo.objects.get(pk=130100)
return render(request, 'booktest/area.html', {'area': area})<!DOCTYPE html>
<html>
<head>
<title>地区</title>
</head>
<body>
当前地区:{{area.atitle}}
<hr/>
上级地区:{{area.aParent.atitle}}
<hr/>
下级地区:
<ul>
{ %for a in area.areainfo_set.all%}
<li>{{a.atitle}}</li>
{ %endfor%}
</ul>
</body>
</html>urlpatterns = [
url(r'^area/$', views.area, name='area')
]