我必须通过动态值(可以是“无”)过滤查询集:我可以简单地写:
filtered_queryset = queryset.filter(field=value)
或者我应该检查“无”:
if value is None:
filtered_queryset = queryset.filter(field__isnull=True)
else:
filtered_queryset = queryset.filter(field=value)
该行为是否取决于特定的 DBMS?
ORM 将处理None
(将其转换为 NULL)为您并返回QuerySet
对象,所以除非你需要抓住None
输入第一个例子就可以了。
>>> User.objects.filter(username=None)
[]
>>> type(_)
<class 'django.db.models.query.QuerySet'>
>>> str(User.objects.filter(username=None).query)
SELECT "auth_user"."id", "auth_user"."username", "auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_user"."password", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."is_superuser", "auth_user"."last_login", "auth_user"."date_joined" FROM "auth_user" WHERE "auth_user"."username" IS NULL
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)