我有一个名为client_details.html的模板,显示user
,note
和datetime
。现在有时,客户端可能没有用户,注释和日期时间的条目。如果这些字段为空,我的程序将改为显示None
。我不希望显示无。如果某个字段没有值,我不希望看到任何值,例如如果可能,请将其留空,而不是显示无。
views.py
@login_required
def get_client(request, client_id = 0):
client = None
try:
client = models.Client.objects.get(pk = client_id)
except:
pass
return render_to_response('client_details.html', {'client':client}, context_instance = RequestContext(request))
模板
{{client.datetime}}<br/>
{{client.datetime.time}}<br/>
{{client.user}}<br/>
{{client.note}}<br/>
答案 0 :(得分:77)
使用内置的default_if_none
过滤器。
{{ client.user|default_if_none:" " }}
{{ client.user|default_if_none:"" }}
答案 1 :(得分:5)
clang
直接在模板中使用它而不是字段。
ExampleModel(models.Model):
myfield = models.CharField(blank=True, null = True)
@property
def get_myfield(self)
if self.myfield:
return self.myfield
else:
return ""
您以后永远不需要更改模板来更改此字段,只需修改您的属性即可。
答案 2 :(得分:4)
你可以使用:
{% if client %} {{client.user}} {% else %} {% endif %}
使用检查是否足够,因此如果您愿意,可能不会使用其他用户阻止...