为啥 save_model 方法在 admin.StackedInline 中不起作用?

Posted

技术标签:

【中文标题】为啥 save_model 方法在 admin.StackedInline 中不起作用?【英文标题】:why save_model method doesn't work in admin.StackedInline?为什么 save_model 方法在 admin.StackedInline 中不起作用? 【发布时间】:2011-03-04 03:53:24 【问题描述】:

我有一个与我之前解决的问题类似的问题,只是这次解决方案似乎不起作用:

How to auto insert the current user when creating an object in django admin?

以前我使用覆盖 save_model 来标记提交文章的用户。现在我需要为 cmets 做同样的事情,它似乎不再起作用了。

有人有什么想法吗?

非常感谢!

杰森

【问题讨论】:

【参考方案1】:

保存不是在 InlineAdmin 的save_form 中完成的,您必须查看内联所属的 ModelAdmin 中的save_formsets

 class MyAdmin(admin.ModelAdmin):
    inlines = [MyInlineAdmin,.....]

    def save_formset(self, request, form, formset, change):
        formset.save()
        if not change:
            for f in formset.forms:
                obj = f.instance 
                obj.user = request.user
                obj.save()

【讨论】:

非常感谢!只是提供一些更实质性的例子:***.com/questions/1477319/… 您确定:如果不更改:是否正确?如果改变不应该是:?非常感谢你的例子!!!投票赞成。 @LukeDupin 我认为这是正确的。正如所写,它只会在创建内联对象时设置用户,但不会在更新时设置。 docs.djangoproject.com/en/1.10/ref/contrib/admin/…

以上是关于为啥 save_model 方法在 admin.StackedInline 中不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

覆盖 Django InlineModelAdmin 上的 save_model

Django admin save_model 没有在 Postgres 中推进主键

django admin save_model 不保存模型更改

keras.models.save_model 中的 saved_model.pb 是不是与 tensorflow freeze_graph 输出 .pb 文件相同?

Nginx - Admin’s Guide

在 django 中测试 admin.ModelAdmin