我想传递一个或多个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})