下划线联表操作
正向查询用属性 models.操作表类名.objects.filter(id=2).values('外联属性__外表字段名') 反向查询用类名小写 models.操作表类名.objects.filter(外联表类名小写__属性=值).values('字段名')
聚合函数
models.Book.objects.all().aggregate(Avg('price')) models.Book.objects.all().aggregate(Sum('price')) models.Book.objects.all().aggregate(Max('price')) models.Book.objects.all().aggregate(Min('price'))
F/Q查询
F查询 models.Book.objects.filter(price=F('price')).update(price=F('price')+1) # 批量操作 Q查询 models.Book.objects.filter(Q(price__gt=50)&Q(comment__gt=20)) & 与 | 或 ~ 非
分组
单表
models.Book.objects.values('publish_id').annotate(m=Max('price'))
多表
正向查询 models.Publish.objects.values('publish_id').annotate(m=Max('price')).values('publish__name','m') 逆向查询 models.Publish.objects.values('name').annotate(m=Max('book__price')) models.Publish.objects.annotate(m=Max('book__price')).values('name','m')