Python 使用exclude对Django表单字段排序
Django 1.9+允许我通过将列表传递到Python 使用exclude对Django表单字段排序,python,django,forms,Python,Django,Forms,Django 1.9+允许我通过将列表传递到字段\顺序来指定模型表单字段的顺序。但是,如果我在表单的Meta类中有exclude,则它不起作用: class MyForm(ModelForm): class Meta: model = MyModel exclude = ['unwanted_field1', 'unwanted_field2'] field_order = ['foo', 'bar', 'spam', 'eggs']
字段\顺序
来指定模型表单
字段的顺序。但是,如果我在表单的Meta
类中有exclude
,则它不起作用:
class MyForm(ModelForm):
class Meta:
model = MyModel
exclude = ['unwanted_field1', 'unwanted_field2']
field_order = ['foo', 'bar', 'spam', 'eggs']
(我按照在模型中定义的顺序获取字段)。如果我指定所需的字段而不是使用排除
,则这些字段按我所需的顺序排列:
class MyForm(ModelForm):
class Meta:
model = MyModel
fields = ['foo', 'bar', 'spam', 'eggs']
那么,我们应该如何使用
字段顺序?我将在这里留下我自己的解决方案,以防其他人以同样的方式绊倒。似乎field\u order
是ModelForm
类的属性,而不是它的Meta
类的属性(出于某种原因:欢迎解释…)。因此,应按预期进行以下工作:
class MyForm(ModelForm):
field_order = ['foo', 'bar', 'spam', 'eggs']
class Meta:
model = MyModel
exclude = ['unwanted_field1', 'unwanted_field2']