【问题标题】:Filter Django queryset with multiple variables使用多个变量过滤 Django 查询集
【发布时间】:2018-11-22 00:13:54
【问题描述】:

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

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

谁能指出我哪里出错了?

【问题讨论】:

    标签: django django-models django-queryset


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2019-02-09
      • 2015-08-25
      • 1970-01-01
      • 2018-12-01
      • 1970-01-01
      • 2016-11-07
      • 2020-08-22
      • 2019-04-15
      相关资源
      最近更新 更多