使用多变量筛选Django查询集

使用多变量筛选Django查询集,django,django-models,django-queryset,Django,Django Models,Django Queryset,我想传递一个或多个GET变量来过滤查询集。我尝试了以下代码来创建一个变量字典并应用过滤器,但是使用两个变量进行测试时,似乎只对最终的字典变量进行过滤 for k,v in mydict.items(): qs = mymodel.objects.filter(**{"%s__contains" % k: v}) 有人能给我指出错误的方向吗?您在每次迭代中从头开始创建一个新的查询集,而不是将它们链接起来。尝试将代码更改为: qs = mymodel.objects.all() for k

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

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

有人能给我指出错误的方向吗?

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

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