Django动态表单&;字段排序
我有一张表格,可以记录到一个部门 它是一个动态表单,根据表单类别/部门具有其他自定义字段 每张票证都有标准字段,如标题、日期、内容。一些有名为custom_acbdef的字段,该字段允许部门在表单上询问其他问题 这些额外的字段总是出现在表单的底部,目前还可以。(我添加了模型表单,然后通过其他字段循环并将它们添加到self.fields) 现在,我想添加一个名为“PDF附件”的额外标准字段,但我希望它始终显示在表单的底部。目前的问题是,所有标准字段都显示在顶部,而自定义字段则显示在底部Django动态表单&;字段排序,django,forms,Django,Forms,我有一张表格,可以记录到一个部门 它是一个动态表单,根据表单类别/部门具有其他自定义字段 每张票证都有标准字段,如标题、日期、内容。一些有名为custom_acbdef的字段,该字段允许部门在表单上询问其他问题 这些额外的字段总是出现在表单的底部,目前还可以。(我添加了模型表单,然后通过其他字段循环并将它们添加到self.fields) 现在,我想添加一个名为“PDF附件”的额外标准字段,但我希望它始终显示在表单的底部。目前的问题是,所有标准字段都显示在顶部,而自定义字段则显示在底部 class
class Meta:
model = Ticket
fields = ('ticket_category','ticket_branch','ticket_content', 'ticket_attachment1')
因此,在上面,我想在ticket\u内容和ticket\u附件之间插入所有自定义字段。你知道我该怎么做吗?所有自定义表单字段都有动态字段名,但始终以“custom_uu”开头。当我的表单中的内容开始变得不可管理时,我通常采用以下方法之一: 创建工厂 利用闭包,编写一个函数动态构建
字段
,然后返回该类
def TicketForm():
fields = ['title', 'date', 'content']
for custom_field in custom_fields:
fields.append(custom_field)
fields.append('ticket_content')
fields.append('ticket_attachment1')
class _TicketForm(forms.ModelForm):
class Meta:
model = Ticket
fields = fields
return _TicketForm
多种形式
我将根据用例创建几个不同的表单,然后在我的视图中确定应该返回哪个表单
为了进一步阅读,由James Bennett(django core dev)撰写的关于动态表单的文章。我实际上是通过删除字段,然后在自定义字段循环后重新添加字段来实现的,但您的解决方案在我看来更好。太好了,谢谢