我正在尝试遍历模板中的form.fields以及:
{% for field in form.fields %}
{{ field }},
{% endfor %}
我得到一个字段名称列表(“name,description ...”),而不是使用以下内容时呈现的html代码:
{{ form.name }}, {{ form.description }}
(在这种情况下的输出是:
< input id =“id_name”type =“text”name =“name”maxlength =“200”/>< input id =“id_description”....
任何提示? 谢谢!
答案 0 :(得分:10)
你想迭代“形式”,而不是“form.fields”。后者返回Field实例,前者返回BoundField实例(即使在未绑定的表单的情况下),它们将呈现其小部件HTML。
form.visible_fields和form.hidden_fields是仅获取表单的可见/隐藏字段的实用程序方法,但它们也返回BoundField实例。它们与form.fields没有任何平行(我同意这不是最清晰的API)。
答案 1 :(得分:2)
迭代“form”而不是“form.fields”解决了这个问题。 不确定为什么文档还提供了例如:
{% for field in form.visible_fields %}
...
也导致空集。与我的表格没有约束的事实有关?不确定......
答案 2 :(得分:0)
您获得的字段是django.forms.Field实例。要从中获取html视图,您可以使用小部件功能。 {{field.widget}}