Django: 希望将空字段显示为空白而不是None
我有一个叫做 client_details.html 的模板,它会显示 user
(用户)、note
(备注)和 datetime
(日期时间)。但是,有时候客户可能没有填写用户、备注和日期时间这些信息。我的程序现在会在这些字段为空的时候显示 None
。我不想让它显示 None。如果某个字段没有值,我希望它能保持空白,而不是显示 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/>
3 个回答
7
这个问题真是奇怪。
我有个好主意。如果你想在显示的时候修改你的字段,那就不要在模板里检查,而是在你的模型类里检查。
ExampleModel(models.Model):
myfield = models.CharField(blank=True, null = True)
@property
def get_myfield(self)
if self.myfield:
return self.myfield
else:
return ""
直接在你的模板中使用它,而不是使用字段。
{{ExampleModel.get_myfield}}
这样你将来想要改变这个字段时,就不需要修改模板,只需要改你的属性就可以了。
145
使用内置的 default_if_none
过滤器。
{{ client.user|default_if_none:" " }}
{{ client.user|default_if_none:"" }}
8
你可以使用:
{% if client %} {{client.user}} {% else %} {% endif %}
只用if来检查就可以了,如果你想的话,可以不使用else部分...