【发布时间】:2017-10-26 13:34:25
【问题描述】:
在对值列表进行过滤时,是否可以包含 None?
>>> MyModel.objects.filter(amount=10).count()
9
>>> MyModel.objects.filter(amount=None).count()
30
>>> MyModel.objects.filter(amount__in=[10]).count()
9
>>> MyModel.objects.filter(amount__in=[None, 10]).count()
9
我希望最后一次调用返回 39,而不是 9。
在我的实际用例中,None 可能包含也可能不包含在要过滤的值列表中。我可以使用 if/else 块来检查值列表中的 None 并在需要时使用 Q 对象构造查询,但是对于大量过滤器这样做会很麻烦。一定有更好的办法吧?
【问题讨论】:
标签: python django python-3.x django-models