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)