У меня есть две модели: сообщение и вложение. Каждое вложение прикрепляется к определенному сообщению с использованием ForeignKey в модели вложений. Обе модели имеют auto_now DateTimeField с именем updated. Я пытаюсь сделать так, чтобы при сохранении любого вложения он также устанавливал обновленное поле в связанном сообщении на «сейчас». Вот мой код:
def save(self):
super(Attachment, self).save()
self.message.updated = self.updated
Будет ли это работать, и если вы можете мне это объяснить, почему? Если нет, то как мне это сделать?
Вам также нужно будет затем сохранить сообщение. Тогда это должно сработать.
Поля DateTime с auto_now автоматически обновляются при вызове 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()