4

テンプレート内の form.fields を繰り返し処理しようとしています:

{% for field in form.fields %}
   {{ field }}, 
{% endfor %}

以下を使用すると、レンダリングされる html コードではなく、フィールド名 (「名前、説明...」) のリストを取得しています。

{{ form.name }}, {{ form.description }}

(この場合の出力は次のとおりです。

<input id="id_name" type="text" name="name" maxlength="200" /><input id="id_description"....

ヒントはありますか?ありがとう!

4

3 に答える 3

10

「form.fields」ではなく「form」を反復処理したい。後者は Field インスタンスを返し、前者は (バインドされていないフォームの場合でも) BoundField インスタンスを返し、ウィジェット HTML をレンダリングします。

form.visible_fields と form.hidden_​​fields は、フォームの表示/非表示フィールドのみを取得するユーティリティ メソッドですが、BoundField インスタンスも返します。それらは、form.fields とはまったく同等ではありません (これが可能な限り明確な API ではないことに同意します)。

于 2009-03-22T17:07:52.847 に答える
2

「form.fields」の代わりに「form」を繰り返すことで問題が解決しました。ドキュメントには次のような例も含まれているため、理由はわかりません。

{% for field in form.visible_fields %}
...

これも空のセットになります。私のフォームがバインドされていないという事実と関係がありますか? わからない...

于 2009-03-22T09:43:06.487 に答える
0

取得するフィールドは django.forms.Field インスタンスのものです。そこから html ビューを取得するには、widget 関数を使用できます。{{ フィールド.ウィジェット }}

于 2009-03-22T09:29:56.190 に答える