Har*_*rry 3 django django-models django-views
用户可以选择要过滤的字段,我只需要过滤那些字段,但可以有3个字段.
用户选择所有三个选项:a,b和c
Foo.objects.filter(a=1,b=2,c=3), good
Run Code Online (Sandbox Code Playgroud)
如果用户只选择1个选项或2个选项怎么办?
Foo,objects.filter(a=1, b=2, c=not selected)
Run Code Online (Sandbox Code Playgroud)
我该怎么做只过滤选定的选项.这来自视图的帖子,如果没有选择,看起来像这样:
a=1,b=NaN,c=3
Run Code Online (Sandbox Code Playgroud)
所以b没有被选中,我不想在我的过滤器中包含它,
Foo.objects.filter(a=1,c=3)
Run Code Online (Sandbox Code Playgroud)
或者我可能是一个基本上是"全部"选择器的过滤器
如上所述:
Foo.objects.filter(a=1,b=%,c=3)
Run Code Online (Sandbox Code Playgroud)
Joh*_*yes 15
您可以使用关键字参数dict:
filterargs = { 'a': 1, 'b': 2, 'c': 3 }
Foo.objects.filter(**filterargs)
Run Code Online (Sandbox Code Playgroud)
然后只过滤a和b:
filterargs = { 'a': 1, 'b': 2 }
Run Code Online (Sandbox Code Playgroud)
或者a和c:
filterargs = { 'a': 1, 'c': 3}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8733 次 |
| 最近记录: |