【问题标题】:Django objects.filter multiple filtersDjango objects.filter 多个过滤器
【发布时间】:2011-11-29 19:37:01
【问题描述】:

用户可以选择要过滤的字段,我只需要过滤那些字段但可以有3个字段。

用户选择所有三个选项:a、b 和 c

Foo.objects.filter(a=1,b=2,c=3), good

如果用户只选择 1 个或 2 个选项怎么办?

Foo,objects.filter(a=1, b=2, c=not selected)

我怎样才能做到这一点,只过滤选定的选项。 TH 来自视图的帖子,如果未选中,则如下所示:

a=1,b=NaN,c=3

所以 b 没有被选中,我不想将它包含在我的过滤器中,

Foo.objects.filter(a=1,c=3)

或者我可以这样一个过滤器,基本上是一个“全部”选择​​器

如上:

Foo.objects.filter(a=1,b=%,c=3)

【问题讨论】:

    标签: django django-models django-views


    【解决方案1】:

    您可以使用关键字参数dict:

    filterargs = { 'a': 1, 'b': 2, 'c': 3 }
    Foo.objects.filter(**filterargs)
    

    然后只过滤 a 和 b:

    filterargs = { 'a': 1, 'b': 2 }
    

    或a和c:

    filterargs = { 'a': 1, 'c': 3}
    

    【讨论】:

      猜你喜欢
      • 2018-06-16
      • 1970-01-01
      • 2018-09-16
      • 2011-01-14
      • 2021-05-15
      • 1970-01-01
      • 1970-01-01
      • 2018-12-09
      • 2021-08-31
      相关资源
      最近更新 更多