ali*_*s51 4 python django django-models
如果我想过滤“大于或等于”,我可以使用gte:
MyModel.objects.filter(mydatetimefield__gte=mydate)
Run Code Online (Sandbox Code Playgroud)
同样,如果我想过滤“is none/null”,我可以使用isnull:
MyModel.objects.filter(mydatetimefield__isnull=mydate)
Run Code Online (Sandbox Code Playgroud)
如何组合这些来过滤“大于或等于或为空”,以便上述过滤器将返回两个对象(如果 i)mydatetimefield >= mydate和 ii) mydatetimefield == null?
你使用Q语句来执行OR逻辑
from django.db.models import Q
qry = Q(mydatetimefield=None) | Q(mydatetimefield__gte=mydate)
MyModel.objects.filter(qry)
Run Code Online (Sandbox Code Playgroud)
符合 Willem Van Onsems 替代建议的精神
MyModel.objects.exclude(mydatetimefield__lt=mydate)
Run Code Online (Sandbox Code Playgroud)