Django中想要把模型类聚合得到想要的数据可以用F对象。
比如有模型类A和B,A和B之间有外键关联在一起,A是子表,B是父表(反过来没试过。。因为大部分数据都是用子表的,我想是可以的),那么可以这样查:
A.objects.filter(userid=3,bookid=F(bid))
其中userid,bookid是模型类A的字段,bid是模型类B的字段。
这样操作的结果就是可以查询到userid为3且模型类A字段bookid等于模型类B字段bid的集合数据了。
F对象是可以比较两个关联模型类的字段数据的。
我看到网上有说F对象可以这样用F('b__id') ==>F('模型类名小写__字段名'),此处是双下划线。
但是我用Django2.0时会报错。。真是搞不懂,后来我直接使用字段名居然可以,醉了。
反正都可以试试吧
A.objects.filter(userid=3,bookid=F(bid))
A.objects.filter(userid=3,bookid=F('b__bid'))