从for循环渲染的Django模板

Django Template rendering from for loop

我有一个简单的表单,其中的字段名称为 company_name、位置、国家/地区以及我从 views.py 呈现为 {'form':form} 的其他一些内容。

在模板上调用表单的常用方法是 {% for field in form %},它按照 form.py 文件中字段属性的顺序呈现字段。另一种向每个字段添加特殊 类 和样式的方法我将每个字段称为 {{ form.company_name }}.

我有另一个 for 循环,它只包含表单字段的名称 {% for element in fieldnames %}

我想按照字段名中的顺序呈现表单字段。我尝试使用以下示例进行分配,但没有用。

{% for element in fieldnames %}
{{ form.element }}
{% endfor %}

为什么我们不能像上面那样使用 for 循环进行渲染,但是如果我用 {{ form.company_name }} 之类的字段名称替换元素名称,它就可以工作了

{% for name in fieldnames %}
    {% for field in form %}
        {% if field.name == name %}
            {{ field }}
        {% endif %}
    {% endfor %}
{% endfor %}