最初の値が設定されたフォームフィールドを手動でレンダリングするにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/3929903

質問

私は、フォームのフィールドを手動でレンダリングしようとしているので、デザイナーの同僚がPythonソースで苦労するのではなく、HTML内の入力要素を操作できるようにしています。

すなわち。このようなフォームフィールドを宣言する代わりに...

            {{ form.first_name }}   

..私は実際にします...

            <label for="id_first_name">Your name:</label>
            <input type="text" value="{{  form.first_name.somehow_get_initial_value_here }}" name="first_name" id="id_first_name" class="blabla" maxlength="30" >
            {% if form.first_name.errors %}<span>*** {{ form.first_name.errors|join:", " }}</span>{% endif %}

問題は、2番目の方法でフィールドの初期値を取得する方法がないように見えることです。 {{form.first_name}} ステートメントは、適切な初期値で入力要素をレンダリングしますが、どういうわけかは何もありません {{form.first_name.initial_value}} フィールドフォームを手動でレンダリングしたい場合。

役に立ちましたか?

解決

この問題について興味深い長年のチケットがあります。コメントにテンプレートフィルターを実装するサンプルコードがあります。

http://code.djangoproject.com/ticket/10427

他のヒント

<input value="{{form.name.data|default_if_none:'my_defaut_value'}}" ... />

使用する必要があります default_if_none バインドされたフィールドの暗黙の値がで保存されないため data. 詳細については、こちらをご覧ください

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top