订购带排除的Django表单字段

时间:2016-05-21 20:27:12

标签: python django forms

Django 1.9+允许我通过将列表传递给ModelForm来指定field_order个字段的顺序。但是,如果我的exclude课程中Meta class MyForm(ModelForm): class Meta: model = MyModel exclude = ['unwanted_field1', 'unwanted_field2'] field_order = ['foo', 'bar', 'spam', 'eggs'] ,那么它无法发挥作用:

exclude

(我按照模型中定义的顺序获取字段)。如果我指定了我想要的字段而不是class MyForm(ModelForm): class Meta: model = MyModel fields = ['foo', 'bar', 'spam', 'eggs'] ,则按照我想要的方式对它们进行排序:

field_order

那么如何使用Every man will die

1 个答案:

答案 0 :(得分:1)

我会在这里留下我自己的解决方案,以防其他人以同样的方式绊倒。似乎field_orderModelForm类的属性,而不是Meta类的属性(由于某种原因:解释欢迎......)。因此,以下按预期工作:

class MyForm(ModelForm):

    field_order = ['foo', 'bar', 'spam', 'eggs']

    class Meta:
        model = MyModel
        exclude = ['unwanted_field1', 'unwanted_field2']