2012-04-04 24 views
1

我在使用django模板中的'| default'时遇到问题。Django DetailView模板默认字段值不起作用

如果我做到这一点(它的工作原理):

<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 %} 

在这种情况下,默认值是行不通的,它在模板中显示“无”而不是“未通知”。

你知道一个简单的方法来解决它吗?

回答

2

我猜你是转换为str模型的get_fields方法。如果不是这样,请发布您的get_fields方法。

+0

我用value_to_string然后我改为_get_val_from_obj: DEF get_fields(个体): 返回[(field.verbose_name,field._get_val_from_obj(个体)),用于字段自.__类__._ meta.fields] ^ 。^ – StaticX 2012-04-04 22:46:04