【发布时间】:2012-03-11 08:15:43
【问题描述】:
我想在表单集中保存字段的顺序,但我希望隐藏顺序字段(即用户无法编辑它)。
文档here 说我可以重写 add_fields 方法来重新定义订单字段的属性。这是我重写的类:
class MyBaseFormSet(BaseInlineFormSet):
def add_fields(self, form, index):
super(MyBaseFormSet, self).add_fields(form, index)
form.fields['order'] = forms.HiddenInput()
还有来自views.py:
MyFormSet = inlineformset_factory(ModelA,
ModelB,
formset = MyBaseFormSet,
can_order = True)
我的模板文件的相关部分:
{{ formset.management_form }}
<tr>
{% for form in formset %}
{% for hidden in form.hidden_fields %}{{ hidden }}{% endfor %}
<td>{% for visible in form.visible_fields %}{{ visible }}{% endfor %}</td>
</tr>
渲染页面时引发 TemplateSyntaxError:Caught AttributeError while rendering: 'HiddenInput' object has no attribute 'label' 我怀疑我的覆盖类不正确,但文档对我没有多大帮助。
【问题讨论】:
标签: django django-forms django-templates