13

Message と Attachment の 2 つのモデルがあります。各添付ファイルは、Attachment モデルの ForeignKey を使用して特定のメッセージに添付されます。どちらのモデルにも、updated という auto_now DateTimeField があります。添付ファイルが保存されると、関連するメッセージの更新されたフィールドも現在に設定されるようにしようとしています。これが私のコードです:

def save(self):
    super(Attachment, self).save()
    self.message.updated = self.updated

これは機能しますか?もし私に説明できるなら、なぜですか? そうでない場合、どうすればこれを達成できますか?

4

3 に答える 3

11

次に、メッセージを保存する必要もあります。その後、それはうまくいくはずです。

于 2008-08-21T19:57:36.410 に答える
7

Proper version to work is: (attention to last line self.message.save())

class Message(models.Model):
    updated = models.DateTimeField(auto_now = True)
    ...

class Attachment(models.Model):
    updated = models.DateTimeField(auto_now = True)
    message = models.ForeignKey(Message)

    def save(self):
        super(Attachment, self).save()
        self.message.save()
于 2015-10-31T08:11:30.790 に答える
1

auto_nowを含むDateTimeフィールドは、を呼び出すと自動的に更新されるsave()ため、手動で更新する必要はありません。Djangoがこの作業を行います。

于 2008-09-16T13:44:51.100 に答える