Python “Django”;或;像Queryset中的语句?
对Django有一个简单的语法问题, 想象一下下面的查询集: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 ?
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),
状态为“待定”
)