2012-04-04 14 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

モデルのget_fieldsの方法でstrに変換されていると思います。それ以外の場合はget_fieldsメソッドを投稿してください。 をDEF get_fields(自己):[自己のフィールド用(field.verbose_name、field._get_val_from_obj(自己)).__クラス__._ meta.fields] リターン^ Iは、私は_get_val_from_objに変更value_to_string用いた

+0

。^ – StaticX