代码之家  ›  专栏  ›  技术社区  ›  Lev

将多个参数传递到django的filter()

  •  0
  • Lev  · 技术社区  · 7 年前

    基于用户输入,我需要将自定义参数传递到django过滤器。

    大致如下:

    q = Question.objects.all()
    a = q.filter(O_Stat__icontains = "Active", Ll_Name__icontains = "fruit")
    

    我尝试将参数设置为字符串:

    f = 'Operating_Status__icontains = "Active", Legal_Name__icontains = "fruit"'
    a = q.filter(f)
    

    获取堆栈跟踪错误。 那么有没有更好的解决方案将每个可能的字段都传递到过滤器中呢?

    #Like This
    a = q.filter(O_Stat__icontains = UserIn1, Ll_Name__icontains = UserIn2)
    

    当做。

    1 回复  |  直到 7 年前
        1
  •  1
  •   blhsing    7 年前

    可以先生成dict,然后使用关键字unpack运算符 ** 将dict作为关键字参数传递给 filter 是的。

    f = {'Operating_Status__icontains': "Active", 'Legal_Name__icontains': "fruit"}
    a = q.filter(**f)