F 查询
用过滤器filter 过滤时 通常与常量比较例如:filter(num__lt=3) 大于3的
如果两个字段值比较filter(num__lt=num2)就会报错, 因为python中没有num2这个变量,而是数据库的字段名
就要用F 查询 filter(num__lt=F(num2))
from django.db.models import F # 必须导入
Book.objects.filter(num__lt=F(num2)) # 需要套上F 才能把数据库字段内容提出来进行对比
字段不能直接访问,必须套上F()
Q 查询
Q= 或
from django.db.models import Q # 必须导入
models.Book.objects.filter(Q(authors__name="小仙女")|Q(authors__name="小魔女"))