动态查询 Django 构建

che*_*tan 3 django dynamic django-queryset

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

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

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

Ser*_*ach 8

您可以使用 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)
Run Code Online (Sandbox Code Playgroud)

如果您需要OR操作员使用query |= Q() 对于AND操作员使用query &= Q()