django中还有一个 F 和一个 Q


导入方式

from django.db.models import F


关于F :

使用方法

 F 比较好说, 他是用来指定表中的字段的,

比如说 table01 中的 size 字段加 1 的时候 ,

在SQL 中的语句是 

update table01 set size = size +1

django中 的则是

models.table01.objects.all().update(size = F("size")+1)

F("size") 表示的就是 当前行的size   , 这就是F的作用. 




关于Q

用于条件查询

像一些网站提供的指定多个搜索条件的高级搜索,就可以用Q来实现. 


使用方法:

from django.db.models import Q



condition1 = Q()

condition2 = Q()

condition3 = Q()


# 设定 condition1 ,多个条件, 或 关系 ,也可以设置其他关系

condition1.connector = "OR"

condition1.children.append(("id",1))

condition1.children.append(("id",3))


# 设定 condition2 ,多个条件, 或 关系,也可以设置其他关系

condition2.connector = "OR"

condition2.children.append(("name","alex"))

condition2.children.append(("name","eric"))


#将  condition1 和  condition2 一起放到 condition3

condition3.add(condition1,"ADD")

condition3.add(condition2,"ADD")


# 进行条件查询.

models.TableName.objects.filter(condition3)