【发布时间】:2019-12-19 16:30:44
【问题描述】:
我正在尝试使用多个过滤器参数(例如名称、年龄、身高)创建一个 django 过滤器。但是,我只想按参数过滤(如果存在)...
在我的初始化中:
def __init__(self, name=None, age=None, height=None):
self.name = name
self.age = age
self.height = height
在我的查询中:
Person.objects.filter(name=self.name, age=self.age, height=self.height)
但是,问题是由于参数在构造函数中是可选的,过滤器有可能正在寻找我不想要的 None 值。如果name='mike'、age=25、height=None,我只希望过滤器使用name和age参数并排除height。比如:
Person.objects.filter(if self.name: name=self.name, if self.age: age=self.age, if self.height: height=self.height)
这可能吗?或者我是否需要首先检查每个变量是否存在并且每个可能的过滤器查询都有不同的情况?
谢谢!
【问题讨论】:
标签: python django django-models django-filters