父模型属性更改时,更新子模型(FK)的属性-Django Admin

时间:2018-08-15 06:41:58

标签: django django-models django-admin

我有多个连接到FK模型的模型,每个模型都有一个state -is_active属性。

class GrandParent(models.Model):
    name = models.CharField(max_length=255)
    # state
    is_active = models.BooleanField(choices=BOOL_TYPE_CHOICES, default=BOOL_TYPE_NO)

class Parent(models.Model):
    name = models.CharField(max_length=255)
    # state
    is_active = models.BooleanField(choices=BOOL_TYPE_CHOICES, default=BOOL_TYPE_NO)

class Child1(models.Model):
    name = models.CharField(max_length=255)
    # state
    is_active = models.BooleanField(choices=BOOL_TYPE_CHOICES, default=BOOL_TYPE_NO)

class Child2(models.Model):
    name = models.CharField(max_length=255)
    # state
    is_active = models.BooleanField(choices=BOOL_TYPE_CHOICES, default=BOOL_TYPE_NO)

我需要什么(对于Django Admin)-示例:

  1. 当{{1}的is_active值变为False时,我希望Parent Child1, Child2也成为is_activeFalse

  2. 如果True试图使Child is_active而不是父项True,则不允许这样做。

---如果is_active=False Grandparent变成is_active,则向下传播到False

我试图在Child级别上重写Model,但是管理员save是一种save Model的替代者。也不涵盖2。

save
  1. 可以更通用吗?继承并基于子类名称和FK存在进行检查的类。

0 个答案:

没有答案