如果我的模型具有可为空的字段:
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'。
如何更正此行为?
有没有办法直接在模板中执行此操作?
答案 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"