从Django中的表单获取值后,我正在运行数据库查询。表单中有很多选项,因此我想将其作为变量传递,但也希望过滤空值。 传递值可以,因为它需要一个字符串,但是除非我提到,否则我无法将变量传递给null过滤器。 如何将值作为变量传递给null过滤器?
parameter = 'temperature'
TempData.objects.all().values(parameter).filter(temperature__isnull=False)
答案 0 :(得分:0)
Django Orm可以处理None
所以
parameter = 'temperature'
TempData.objects.filter(parameter=None)
应该能够返回您的期望。
答案 1 :(得分:0)
如果您有多个要过滤的参数,
parameters = ['temperature', 'foo', 'bar', 'foo_bar']
null_filters = {"{}__isnull".format(param): True for param in parameters}
TempData.objects.all().values(*parameters).filter(**null_filters)