【发布时间】:2014-01-11 03:42:05
【问题描述】:
我有一个简单的 Django 模型,例如:
class Parent(models.Model):
fresh = models.BooleanField(default=True)
class Child(models.Model):
parent = models.ForeignKey(Parent)
<other fields>
我在管理员中有这些设置,以便子记录在父项下显示为内联:
class ChildInline(admin.TabularInline):
model = Child
class ParentAdmin(admin.ModelAdmin):
inlines = [ChildInline]
我该如何配置,以便当用户创建、更新或删除子记录时,它会设置parent.fresh = False?
我尝试简单地覆盖 Child 的 save() 方法,但这在 admin 中不起作用,因为它首先保存子项,然后保存父记录,这会覆盖子项对父项所做的任何修改。
我也试过设置一个客户 post_save 信号,但效果是一样的。它在子节点被保存之后执行的信号,而不是在父节点被保存之前执行的信号,因此更改仍然会被覆盖。
还有其他方法吗?是否有一些 post_admin_save 信号?
【问题讨论】:
标签: python django django-admin