Django模型表单 - 动态创建的字段的顺序

时间:2017-03-19 14:33:36

标签: python django forms django-forms

当我不知道字段的编号和确切名称时,如何在Django ModelForm中设置订单字段?

我有一个名为FormEntry的模型,我想为其创建一个ModelForm 唯一被替换的字段应该是plugin_data并动态创建它的自定义派生词(label,initial,..)和语言前缀(基于语言设置)。
因此,如果我在设置中设置了语言cs和en,那么这些字段必须可用:

plugin_data, label_cs,label_en,initial_cs,initial_en,...

新字段是在__init__中动态创建的,我不知道如果我不知道如何在Django 1.9中使用新功能(Form.field_order)事先的字段名称。

1 个答案:

答案 0 :(得分:2)

没关系,自己解决了:

class someForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(FormElementEntryTransForm, self).__init__(*args, **kwargs)
        # creating new fields
        #...
        self.order_fields(sorted(self.fields.keys())) # sort fields alphabetically