django:form.fields不迭代实例字段

niv*_*hab 4 forms django templates django-templates

我试图在模板中迭代form.fields并为:

{% for field in form.fields %}
   {{ field }}, 
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

我得到一个字段名称列表("名称,描述..."),而不是使用以下时呈现的html代码:

{{ form.name }}, {{ form.description }}
Run Code Online (Sandbox Code Playgroud)

(在这种情况下的输出是:

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

任何提示?谢谢!

Car*_*yer 10

你想迭代"形式",而不是"form.fields".后者返回Field实例,前者返回BoundField实例(即使在未绑定的表单的情况下),它们呈现它们的小部件HTML.

form.visible_fields和form.hidden_​​fields是实用程序方法,只获取表单的可见/隐藏字段,但它们也返回BoundField实例.它们与form.fields没有任何平行(我同意这不是最清晰的API).