2009-04-02 9 views
4

「を場合は、」:次のように私はに苦しんだ問題がある

私が持っている:

{% for field in form %} 
    {{ field }} 
{% end for %} 

私が欲しいものであり.labelか何かが提供されているフィールドを除外するために 'if'ステートメントを置く。 Like:

{% for field in form%} 
    {% if field == title %} 
    {% else %} 
     {{ field }} 
    {% endif %} 
{% endfor %} 

可能でしょうか?私はそれらを1つずつ書くために多くのフィールドを持っていて、1つまたは2つを除外しなければなりません。

ありがとうございました。

BR、 Czlowiekwidmo。

{% for field in form %} 
    {% ifnotequal field.label title %} 
     {{ field }} 
    {% endifnotequal %} 
{% endfor %} 

Djangoのtemplate tags提供ifequalifnotequalバリエーション、そしてあなたは、コンテキスト変数、または文字列に対してfield.labelをテストすることができます。

答えて

9

はい、これは可能なはずです。

+1

を参照してください。また、ラベルを比較することは、翻訳が変わる可能性があるため、悪いです。 – dalore

7

不快なフィールドを除いて、フォームのサブクラスを作成する方がずっと幸せかもしれません。 そう簡単な{%がfield.name == 'タイトル' %があれば}動作する、それが廃止されていないhttp://docs.djangoproject.com/en/dev/topics/forms/modelforms/#form-inheritance

class SmallerForm(MyForm): 
    class Meta(MyForm.Meta): 
     exclude = [ title ] 
+0

+1。これは{%if%}より優れた解決策です。また、私はフォーム上でas_ *レンダリングメソッドを使用しようとします。 – muhuk

関連する問題