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

2024-10-01 00:32:01 发布

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

我正在使用两个级别的django-nested-inline包。在

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)创建了一个自定义表单,如下所示:

^{pr2}$

同样,我用一个定制的小部件覆盖字段'address'(由于简单起见,我将不包括它)。在

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

提前谢谢!在


Tags: djangonameform表单modelinline级别class
1条回答
网友
1楼 · 发布于 2024-10-01 00:32:01

问题是您正在调用super(ModelForm, self).__init__方法,它是Form类的__init__方法。因此,您的类被构造成一个普通的Form,而不是ModelForm。在

您应该改为调用super(AddressModelForm, self).__init__。请记住:super的第一个参数是需要为其获取父类型方法的子类型。您可以找到有关superhere的更多信息。在

相关问题 更多 >