我正在尝试做一些非常简单的事情;我想一个“隐藏”的样式应用于表单域,当我在一些初始值已经通过了这样一个Django模板中:在迭代字段时访问django表单的初始值
form = form_class(initial={'field':data})
通常情况下,这将是这样的:
<li class="{{form.somefield.name}} {% if form.somefield.initial %} hidden{% endif %}>
...
</li>
但我遍历的形式,所以我想要做的做的东西,看起来像这样:
{% for field in form %}
<li class="{{field.name}} {% if field.initial %} hidden{% endif %}">
...
</li>
{% endfor %}
但这不起作用,因为field.initial只有定义为初始值到形式领域,而不是表单创建时传入的数据。除了将迭代转换为单个表单之外,还有一个很好的解决方案吗?
我想过的一些(坏)解决方案:
- 覆盖初始化到的东西值形成self.initial到self.fields;
- 写一个名为{%hideifhasinitial%}的模板标签
- 向self和self.initial上使用zip的表单添加一个方法(不起作用,因为self.initial只有一个元素,而self有4个,它只迭代了1个元素,而键(字段名称)不匹配)。