如何在django queryset中执行OR条件?

我想写一个相当于这个SQL查询的Django查询:

SELECT * from user where income >= 5000 or income is NULL. 

如何构buildDjagno查询集filter?

 User.objects.filter(income__gte=5000, income=0) 

这不起作用,因为它是filter。 我想ORfilter来获得单个查询集的联合。

 from django.db.models import Q User.objects.filter(Q(income__gte=5000) | Q(income__isnull=True)) 

通过文档

由于QuerySets实现了Python __or__运算符( | )或联合,它只是工作。 正如你所期望的那样, | 二元运算符返回一个QuerySet所以order_by() .distinct()和其他查询集filter可以被添加到最后。

 combined_queryset = User.objects.filter(income__gte=5000) | User.objects.filter(income__isnull=True) ordered_queryset = combined_queryset.order_by('-income')