【问题标题】:Override of ModelAdmin.save_model not being called未调用 ModelAdmin.save_model 的覆盖
【发布时间】:2009-10-15 14:06:00
【问题描述】:

我正在使用 GenerickStackedInline,它是 InlineModelAdmin 的一个子类,用于 ModelAdmin。当我覆盖 save_model 方法时......它没有被调用。

class LocatedItemStackedInline(generic.GenericStackedInline):
    template = "admin/location_app/located_items/stacked.html"
    model = LocatedItem
    extra = 1
    form = MyModelForm
    raw_id_fields = ('location',)

    def save_model(self, request, obj, form, change):
        import ipdb;ipdb.set_trace()
        super(LocatedItemStackedInline, self).save_model(request, obj, form, change)

    def save_form(self, request, form, change):
        import ipdb;ipdb.set_trace()
        super(LocatedItemStackedInline, self).save_form(request, form, change)

所以,我错过了什么?

有什么线索吗?

问候

【问题讨论】:

  • 发现contrib.admin.options中调用了save_model,但还是不知道为什么我的没有调用

标签: django django-admin modeladmin


【解决方案1】:

问题是我在 InlineAdmin 上覆盖了 save_model 方法,而不是在 ModelAdmin 本身上。

现在正在调用...

干杯。

【讨论】:

    【解决方案2】:

    http://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.save_model

    描述了您正在谈论的功能。我最好的猜测是你对何时何地调用它感到困惑。另外,您确定您实际上使用的是最新版本吗?

    编辑:我猜想内联 ModelAdmin 对象的行为可能会有所不同,因为它们具有其他特殊的状态。

    【讨论】:

    • 并不是因为我需要请求对象来使用表单中隐藏字段中的一些内容。还是为什么我不能使用它?已记录在案。没有实现吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多