我在列表中传递多个值,并且我想用这些值过滤我的查询集。我了解 Q 对象,但我不知道如何将过滤器添加在一起。我想到了类似的事情:
categories = ['1','3','4']
for category in categories:
Q+= Q(id = category)
Run Code Online (Sandbox Code Playgroud)
之后我会过滤我的查询集queryset.filter(Q)
小智 5
正如前面所回答的,在这种特殊情况下您不需要Q,您可以使用__in过滤器。如果出于任何原因你想使用Q它会这样:
from django.db.models import Q
q_list = Q()
for category in categories:
q_list |= Q(id=category)
result_queryset = ModelName.objects.filter(q_list)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1349 次 |
| 最近记录: |