使用多个变量过滤Django queryset

时间:2018-11-22 00:13:55

标签: django django-models django-queryset

我想传递一个或多个GET变量来过滤查询集。我尝试了以下代码来创建变量的字典并应用过滤器,但是使用两个变量进行测试似乎只能对最终的字典变量进行过滤。

for k,v in mydict.items():
    qs = mymodel.objects.filter(**{"%s__contains" % k: v})

有人能指出我要去哪里的正确方向吗?

1 个答案:

答案 0 :(得分:2)

您将在每个迭代中从头开始创建一个新的查询集,而不是链接它们。尝试将代码更改为:

qs = mymodel.objects.all()
for k, v in mydict.items():
    qs = qs.filter(**{"%s__contains" % k: v})