用exclud排序Django表单域

2024-06-08 08:27:52 发布

您现在位置:Python中文网/ 问答频道 /正文

django1.9+允许我通过向field_order传递一个列表来指定ModelForm字段的顺序。但是如果我在表单的Meta类中有exclude,它就不起作用了:

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?你知道吗


Tags: fieldmodelfoo顺序barorderspameggs
1条回答
网友
1楼 · 发布于 2024-06-08 08:27:52

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

class MyForm(ModelForm):

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

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

相关问题 更多 >