模型_数据的条件查询
原创...大约 1 分钟
参考文档:https://docs.djangoproject.com/zh-hans/4.1/ref/models/querysets/#field-lookups
常用检索字段
字段检索,是在字段名后加 '__' 双下划线,再加关键字,类似 SQL 语句中的 where 后面的部分, 如: 字段名**关键字
exact
:判断是否等于 value,一般不使用,而直接使用 '='contains
:是否包含,大小写敏感,如果需要不敏感的话,使用 icontainsstartswith
:以 value 开头,大小写敏感endwith
:以 value 结尾,大小写敏感in
:是否包含在范围内isnull
:是否为 null, 如:filter(name__isnull=Flase)gt
:大于,如:filter(sage__gt=30) , 年龄大于 30gte
:大于等于lt
:小于lte
:小于等于
# 获取ID等于6
Waiter.objects.filter(id__exact=6)
# 获取ID等于6
Waiter.objects.filter(id=6)
# 获取name名字包含"张"
Waiter.objects.filter(name__contains="张")
# 获取name名字包含"吕"
Waiter.objects.filter(name__contains="吕")
# 获取name名字以"袁"开头的
Waiter.objects.filter(name__startswith="袁")
# 获取name名字以"辽"结尾的
Waiter.objects.filter(name__endswith="辽")
# 获取name名字是"关羽和黄忠"的
Waiter.objects.filter(name__in=["关羽","黄忠"])
# 获取name名字为空的
Waiter.objects.filter(name__isnull=True)
# 获取id大于5的
Waiter.objects.filter(id__gt=5)
# 获取id小于5的
Waiter.objects.filter(id__lt=5)
# 获取id小于等于5的
Waiter.objects.filter(id__lte=5)
# 获取在id为1的餐厅工作的
Waiter.objects.filter(restaurant=1)
# 获取在id为1的餐厅工作的
Waiter.objects.filter(restaurant_id=1)
# 获取在name为肯德基的餐厅工作的
Waiter.objects.filter(restaurant__name="肯德基")
# 会报错,没有用俩个下划线!!!
# Waiter.objects.filter(restaurant_name="肯德基")
提示
在查找中指定的字段必须是模型字段的名称
但有一个例外,如果是 ForeignKey 字段,则是属性名或者属性名+ _id,如代码中 23-26 行
Powered by Waline v2.15.7