我有一个包含以下字段的模型:
user = models.ForeignKey(User)
impact = models.IntegerField(default = value)
我希望value
成为User.get_profile().someIntField
,其中User与传递给第一个字段的用户对象相同。我怎么能这样做?
答案 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