基于可选参数的Django过滤

DjangoNoob

我有一个可选参数列表,我将使用这些可选参数在Django中进行过滤,并试图提出应用这些过滤器的最佳解决方案。我的第一个念头是做类似的事情:

if param_1 != 'all' and param_2 != 'all': # etc.
    class_var = ClassName.objects.filter(param_1__name=param_1, param_2__name=param_2) # etc.
else:
    class_var = ClassName.objects.all()

但由于参数都是可选的,因此我可能只想基于进行过滤,param_1而将其余参数设置为'all'当然,另一个选择是说:

class_var = ClassNam.objects.all()
if param_1 != 'all':
    class_var.filter(param_1__name=param_1)

if param_2 != 'all':
    class_var.filter(param_2__name=param_2)

# etc.

但这在我看来似乎并不十分有效。我只是希望从其他方式上获得一些想法,使我能够执行这些选项过滤器。

依卡纳尔

您可能需要研究Q对象简要地说,Q可以让您OR在查询中使用语句。在前面的页面中:

Polls.objects.get(
    Q(question__startswith='Who') | Q(question__startswith='What')
)

这将拉出以“谁”或“什么”开头的问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从 Django 传递可选列表参数以在原始 SQL 中进行过滤

来自分类常见问题

Java方法链接(可选)基于参数

来自分类Dev

基于查询参数的可选承诺步骤

来自分类Dev

基于可选参数的函数返回类型

来自分类Dev

基于参数的SSRS报告过滤

来自分类Dev

使用可选参数进行Crystal Reports过滤

来自分类Dev

根据可选参数值过滤列表

来自分类Dev

根据可选参数值过滤列表

来自分类Dev

可选参数过滤后的LINQ Projection

来自分类Dev

使用可选参数进行Crystal Reports过滤

来自分类Dev

Django:过滤多个参数

来自分类Dev

基于列表值的Django过滤

来自分类Dev

Django - 使用可选的 FormFields 过滤查询集

来自分类Dev

(可选)基于可变参数模板参数发布方法

来自分类Dev

使用LINQ基于多个参数进行过滤?

来自分类Dev

带有HttpResponseRedirect的Django可选视图参数

来自分类Dev

由基于构造函数可选参数的方法返回的类型

来自分类Dev

带有可选参数的 dynamodb 查询过滤器

来自分类Dev

Django过滤多个URL参数

来自分类Dev

Django过滤多个URL参数

来自分类Dev

函数中的可选过滤器参数,用于过滤或不过滤数据

来自分类Dev

Django如何基于ManyToManyField进行过滤?

来自分类Dev

Django过滤日期时间仅基于日期

来自分类Dev

基于计数的django注释查询过滤

来自分类Dev

基于检索值的Django过滤器

来自分类Dev

C ++ lambda或基于lambda基于签名的重载解析中的可选/忽略参数

来自分类Dev

基于父级路由参数的角度ui-router可选参数

来自分类Dev

基于Django类的视图访问传递的参数

来自分类Dev

jersey / jackson-基于查询参数的过滤器属性