1

次のフィールドを持つモデルがあります。

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

最初のフィールドに渡されたのと同じUserオブジェクトであるUserを使用したい場合valueUser.get_profile().someIntFieldこれどうやってするの?

4

2 に答える 2

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)
于 2012-04-09T10:30:32.187 に答える
2
def __init__(self, *args, **kwargs):
    super(YourModel, self).__init__(*args, **kwargs)
    self.impact = self.user.get_profile().someIntField
于 2012-04-09T10:47:59.273 に答える