2

デザイナーの同僚が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}}フィールドのようなものはありません。

4

2 に答える 2

4

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

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

于 2010-10-16T16:59:19.573 に答える
0
<input value="{{form.name.data|default_if_none:'my_defaut_value'}}" ... />

default_if_noneバインドされたフィールドの暗黙の値はここに保存されないため、を使用する必要がありdata. ます。

于 2010-10-14T12:03:49.107 に答える