2012-03-29 6 views
5

イントロスペクションでは、djangoフィールドに「hidden_​​widget」属性があることがわかります。たぶん、この属性の与えられた目的ではないかもしれませんが、テンプレートの中に隠れたウィジェットを条件付きでレンダリングすることを私に誘惑します。 たとえば、テンプレートに隠されたバージョンのdjangoフィールドを動的にレンダリングする方法はありますか?

{% if some condition %} 
    {{ form.my_field }} 
{% else %} 
    {{ form.my_field.hidden_widget }} 
{% endif %} 

しかし、これは機能しません。この方法で隠しウィジェットを使用することは可能ですか?私は何が欠けていますか?

私は動的に私のカスタムフォーム私はそれに渡す条件のためのいくつかのカスタムkwargに基づいて、クラス、しかし、上記の溶液は、(動的に隠されたレンダリングののinitにウィジェットを設定することにより、これを行うことが実現テンプレート内のウィジェット)は、利用可能な場合、より単純になります。

答えて

8

私は近くでしたが、間違った機能を使用していました。興味がある人の答えは:

{{ form.my_field.as_hidden }} 
+0

これはDjangoのソースコードを見て分かります。私はこれがどこに書かれているのか分かりません。誰かがas_hidden関数のドキュメントにリンクした回答を投稿した場合は、私自身の回答を受け入れたくないので、それを受け入れたものとしてマークします。 –