【发布时间】:2021-02-09 16:57:45
【问题描述】:
我有一个简单的表单,其字段名称为 company_name、location、country 等等,我从 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 }} 它可以工作
【问题讨论】:
-
因为你错了。
element不会转换为您的意思。 -
我认为元素正在生成字段名。如果我错了,请告诉我如何使用元素名称呈现表单字段。
-
我不知道兄弟,只是为了测试,您可以在表单本身中排列字段,以便
for field in form遵循正确的顺序 -
那是按照form.py中给定的字段属性的顺序渲染的。你见过admin feildset,不管字段属性的顺序如何,它都遵循字段集的顺序。所以我没有做错什么,这只是我的项目要求。
-
是的,我看到了 admin-fieldsets,并且我对其中一些进行了一些更改以重新排列它。但是你想做的事情不会那样工作(我的意思是那个代码)