我想在管理员或其他地方添加模型时,根据其他属性修改模型的属性。
例如:
Model A:
has FK to Model B
has FK to Model C
Model B:
has FK to Model C
当我创建模型A时,我选择模型B,因此我希望基于模型B上已存在的FK到模型C自动设置FK到模型C.
我找到了Model.clean
方法(https://docs.djangoproject.com/en/dev/ref/models/instances/#django.db.models.Model.clean),但它说当你调用模型的save()方法时它没有被调用,所以什么时候调用它?我对这种方法的目的感到有点困惑。
我尝试了干净的方法,我能够在一些问题之后使其工作,但我想知道这是否是最好的方法呢?
由于 麦克
答案 0 :(得分:0)
class A(models.Model):
#your fields
def __init__(self, *args, **kwargs):
if not self.pk:
# you can check for if C key is in arguments and
# and set it if you need to. This is for new
# objects.