初始化django模型从那一刻捕获衍生属性

时间:2012-04-09 10:27:04

标签: python django

我有一个包含以下字段的模型:

user = models.ForeignKey(User)
impact = models.IntegerField(default = value)

我希望value成为User.get_profile().someIntField,其中User与传递给第一个字段的用户对象相同。我怎么能这样做?

2 个答案:

答案 0 :(得分:3)

覆盖模型中的save方法

class MyModel(models.Model):
    user = models.ForeignKey(User)
    impact = models.IntegerField()

    def save(self, *args, **kwargs):
        if not self.pk:
            self.impact = self.user.get_profile().someIntField
        super(MyModel, self).save(*args, **kwargs)

答案 1 :(得分:2)

def __init__(self, *args, **kwargs):
    super(YourModel, self).__init__(*args, **kwargs)
    self.impact = self.user.get_profile().someIntField