动态查询Django构建

时间:2019-01-31 05:43:53

标签: django dynamic django-queryset

使用Django查询创建动态查询集

这种情况下执行“与”操作。但某些时间值为空或NULL。

示例:-用户模型具有名称,年龄和城市三列。 并执行操作过滤器,但这和查询是动态的,有时3个字段可用,有时一个或两个如何编写动态查询。

1 个答案:

答案 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()