使用Django查询创建动态查询集
这种情况下执行“与”操作。但某些时间值为空或NULL。
示例:-用户模型具有名称,年龄和城市三列。 并执行操作过滤器,但这和查询是动态的,有时3个字段可用,有时一个或两个如何编写动态查询。
答案 0 :(得分:2)
您可以使用Q()
from django.db.models import Q
query = Q()
if need_filter_name:
query &= Q(name='my_name')
if need_filter_age:
query &= Q(age='my_age')
if need_filter_city:
query &= Q(city='my_city')
User.objects.filter(query)
如果您需要OR
操作员,请使用query |= Q()
对于AND
运算符,请使用query &= Q()