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

django如何循环通过通用detailview传回的上下文对象?

Django 模型字段可调用默认值不起作用

Django - 评级模型示例 DetailView 模板