Django 添加时基于其他属性修改模型上的属性:model.clean方法?

Django 添加时基于其他属性修改模型上的属性:model.clean方法?,django,django-models,Django,Django Models,我想在从管理员或其他位置添加属性时,基于其他属性修改模型上的属性 例如: 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方法,但它说在调用模型的save方法时不会调用它,那么什么时候调用它呢?我当时对这种方法的目的有点困惑 我尝试了干净的方法,在一些问题之后我能够使它工作

我想在从管理员或其他位置添加属性时,基于其他属性修改模型上的属性

例如:

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方法,但它说在调用模型的save方法时不会调用它,那么什么时候调用它呢?我当时对这种方法的目的有点困惑

我尝试了干净的方法,在一些问题之后我能够使它工作,但我想知道这是否是最好的方法

谢谢
Mike

为什么不能使用查找?@Beltiras你什么意思?外键用于跟踪关系。你的用例是什么?是的。问题不在于如何获得modelC。我知道如何让它在modelA modelA.modelC=modelA.modelB.modelC上设置,但问题是我应该在何时/何地这样做,这样,如果我在管理员中添加modelA而只设置modelB,modelA上的modelC将自动设置为modelB具有的相同值。听起来我的问题不是很清楚。对此很抱歉。经过您的澄清,在A中使用C的外键听起来更加多余。
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.