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

Fur*_*lon 12 django django-admin

我有一个与之前解决的问题类似的问题,除了这个时间解决方案似乎不起作用:

如何在django admin中创建对象时自动插入当前用户?

以前我曾经覆盖save_model来标记提交文章的用户.现在我需要对评论做同样的事情,它似乎不再起作用了.

有人有主意吗?

非常感谢!

贾森

Ber*_*ant 23

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

 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()
Run Code Online (Sandbox Code Playgroud)

  • @LukeDupin我认为这是正确的.如上所述,它只会在创建内联对象时设置用户,但不会在更新时设置. (2认同)