次のフィールドを持つモデルがあります。
user = models.ForeignKey(User)
impact = models.IntegerField(default = value)
最初のフィールドに渡されたのと同じUserオブジェクトであるUserを使用したい場合value
。User.get_profile().someIntField
これどうやってするの?
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)
def __init__(self, *args, **kwargs):
super(YourModel, self).__init__(*args, **kwargs)
self.impact = self.user.get_profile().someIntField