Django를 사용하여 상위 모델에서 auto_now DateTimeField 업데이트
문제
두 가지 모델이 있습니다.메시지 및 첨부 파일.각 첨부 파일은 첨부 파일 모델의 ForeignKey를 사용하여 특정 메시지에 첨부됩니다.두 모델 모두 업데이트된 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