Django DetailView模板默认字段值不起作用
Posted
技术标签:
【中文标题】Django DetailView模板默认字段值不起作用【英文标题】:Django DetailView Template default field value not working 【发布时间】:2012-04-18 10:57:51 【问题描述】:我在 django 模板中使用“|default”时遇到问题。
如果我这样做(它有效):
<tr>
<td>% trans 'NAMEOFTHEFIELD' %:</td>
<td> object.nameofthefield|default:"Not informed" </td>
</tr>
但是我有很多领域所以我这样做:
% for name, value in object.get_fields %
% if value %
<tr>
<td>% trans name %:</td>
<td> value|default:"Not informed" </td>
</tr>
% endif %
% endfor %
在这种情况下,默认值不起作用,它在模板中显示“无”而不是“未通知”。
你知道修复它的简单方法吗?
【问题讨论】:
【参考方案1】:我猜你在模型的get_fields
方法中转换为str
。如果不是这样,请发布您的 get_fields
方法。
【讨论】:
我使用 value_to_string 然后我改为 get_val_from_obj: def get_fields(self): return [(field.verbose_name, field._get_val_from_obj(self)) for field in self.__class_._meta.fields] ^.^以上是关于Django DetailView模板默认字段值不起作用的主要内容,如果未能解决你的问题,请参考以下文章
Django DetailView 模板显示所有字段的 get_FIELDNAME_display() 值
django DetailView 没有从 ManyToMany 字段中捕获数据
在 Django 的 DetailView 中将表单字段设置为对象 ID