質問

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

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

これは機能しますか?説明していただけますか?その理由を教えてください。そうでない場合、どうすればこれを達成できますか?

役に立ちましたか?

解決

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

他のヒント

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

動作する適切なバージョンは次のとおりです。(最後の行に注意してください 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()
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top