在django中处理空值和零值

时间:2011-02-23 11:07:40

标签: django null

如果我的模型具有可为空的字段:

class Something(models.Model):
    parameter = models.FloatField(blank=True,null=True)

然后我想在视图或模板中处理它。

如果something.parameter有值,我想返回值,如果为null,我想返回'N / A'。

如果我使用:

something = Something.objects.get(id=1)
output_string = 'parameter value: %s' % (something.parameter or 'N/A')

然后这是有效的,除了在something.parameter = 0的情况下,它也返回'N / A'而不是所需的'0'。

如何更正此行为?

有没有办法直接在模板中执行此操作?

2 个答案:

答案 0 :(得分:8)

使用default_if_none模板过滤器:

{{ value|default_if_none:"N/A" }}

答案 1 :(得分:0)

您可以按 isnull http://docs.djangoproject.com/en/dev/ref/models/querysets/#isnull)过滤数据

something = Something.objects.filter(parameter__isnull=False)

然后,您可以检查您的查询是否返回任何结果并相应地设置您的参数:

if something:
    parameter=something[0].parameter
else:
    parameter="N/A"