相关疑难解决方法(0)

在django admin上编辑实际对象之前保存相关对象

是否可以在django管理表单上编辑实际对象之前保存相关对象?

例如:

models.py

class Parent(model.Model):
    pass

class Child(model.Model):
    parent = models.ForeignKey(Parent)

@receiver(post_save,sender = Parent)
def notify_parent_save(sender, instance=None, **kwargs):
    print "Parent save"

@receiver(post_save,sender = Child)
def notify_child_save(sender, instance=None, **kwargs):
    print "Child saved"
Run Code Online (Sandbox Code Playgroud)

admin.py

class ChildInline(admin.TabularInline):
    model = Child
    extra = 1

class ParentsAdmin(admin.ModelAdmin):
    inlines = [ChildInline]

admin.site.register(Parent,ParentsAdmin)
Run Code Online (Sandbox Code Playgroud)

现在,在django admin中,如果我保存父对象,它将在控制台上输出.

Parent save
Child save
Run Code Online (Sandbox Code Playgroud)

我需要这个按照顺序发生:

Child save
Parent save
Run Code Online (Sandbox Code Playgroud)

django django-signals django-models django-admin

12
推荐指数
3
解决办法
6640
查看次数