Python “Django”;或;像Queryset中的语句?

Python “Django”;或;像Queryset中的语句?,python,django,django-queryset,Python,Django,Django Queryset,对Django有一个简单的语法问题, 想象一下下面的查询集: queryset = Requests.objects.get_queryset().filter( status='Pending', up_rank__gte=config.REQ_RANK - 10, down_rank__gte=config.REQ_RANK - 10 ) 有没有什么方法可以像这样设置我的查询: 向上投票=config.REQ排名-10或向下投票=config.REQ排名- 10 ?

对Django有一个简单的语法问题, 想象一下下面的查询集:

queryset = Requests.objects.get_queryset().filter(
    status='Pending',
    up_rank__gte=config.REQ_RANK - 10,
    down_rank__gte=config.REQ_RANK - 10
)
有没有什么方法可以像这样设置我的查询:

向上投票=config.REQ排名-10或向下投票=config.REQ排名- 10 ?! (见伪OR)

因为我想过滤上下两种情况。我知道的唯一方法是查询链,但对我来说,这似乎不太有效,除了查询链语句,还有其他方法吗?或者我只是胡说八道,而链是好的


提前感谢

是的,您可以将条件包装在中,并使用按位or运算符(
|
),这将生成一个作为析取的
Q
对象:

from django.db.models import Q

queryset = Requests.objects.get_queryset().filter(
    Q(up_rank__gte=config.REQ_RANK - 10) |
    Q(down_rank__gte=config.REQ_RANK - 10),
    status='Pending'
)
从django.db.models导入Q
queryset=Requests.objects.get_queryset().filter(
Q(向上排名=config.REQ排名-10)|
Q(降秩=config.REQ秩-10),
状态为“待定”

)
是的,您可以将条件包装在中,并使用按位or运算符(
|
),这将生成一个作为析取的
Q
对象:

from django.db.models import Q

queryset = Requests.objects.get_queryset().filter(
    Q(up_rank__gte=config.REQ_RANK - 10) |
    Q(down_rank__gte=config.REQ_RANK - 10),
    status='Pending'
)
从django.db.models导入Q
queryset=Requests.objects.get_queryset().filter(
Q(向上排名=config.REQ排名-10)|
Q(降秩=config.REQ秩-10),
状态为“待定”
)