Django を使用して親モデルの auto_now DateTimeField を更新する
質問
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()
所属していません StackOverflow