Python 从内联表单保存自定义数据(django admin)

Python 从内联表单保存自定义数据(django admin),python,django,django-forms,inline-formset,Python,Django,Django Forms,Inline Formset,我使用的是两个级别的django嵌套内联包 class OrdersAdmin(NestedModelAdmin): inlines = [PointsInLine,] form = OrdersModelForm class PointsInLine(NestedStackedInline): model = Points fk_name = 'order_id' inlines = [AddressesInLine] class Addresses

我使用的是两个级别的
django嵌套内联

class OrdersAdmin(NestedModelAdmin):
    inlines = [PointsInLine,]
    form = OrdersModelForm

class PointsInLine(NestedStackedInline):
    model = Points
    fk_name = 'order_id'
    inlines = [AddressesInLine]

class AddressesInLine(NestedStackedInline):
    model = Addresses
    fk_name = 'point'
    form = AddressModelForm
如您所见,我还为最后一级(
AddressesInLine
)创建了一个自定义表单,如下所示:

class AddressModelForm(forms.ModelForm):

    def __init__(self, *args, **kwargs):
        super(forms.ModelForm, self).__init__(*args, **kwargs)
        self.fields['address'].widget = BoxSearchWidget()

    class Meta:
        fields = '__all__'
        model = Addresses
同样,我用一个自定义小部件覆盖字段“address”(由于简单,我将不包括它)

最后,问题是:当我保存时,这个自定义字段地址不会保存,甚至当我试图覆盖表单的save()方法时,我在任何字典中都看不到该值。那么,我在创建自定义表单时是否遗漏了一些内容?


提前谢谢

问题是您正在调用
超级(ModelForm,self)。\uuuuu init\uuuu
方法,这是
表单
类的
方法。因此,类被构造为一个普通的
表单
,而不是
模型表单

您应该调用
super(AddressModelForm,self)。\uuuu init\uuuuu
。请记住:
super
的第一个参数是需要获取父类型方法的子类型。您可以找到有关
super
的更多信息