我想为用户创建一种能够交换1对1消息的功能。为此,我想更新我的Django模型中的字段,具体取决于Message
模型所采取的操作。例如,我想在每次发布新邮件时更新last_message
模型中的Conversation
。
我有两个主要模型:Conversation
和Message
,其中每个会话都可以有很多消息。
的 Models.py
class Conversation(models.Model):
last_message = models.CharField(max_length=50, blank=True)
class Message(models.Model):
body = models.TextField(max_length=500, blank=False)
conversation = models.ForeignKey(Conversation, on_delete=models.CASCADE)
我认为我需要使用覆盖save()
类中的Message
方法。或者可能是save()
序列化器的方法。
def save(self, *args, **kwargs):
super(Message, self).save(*args, **kwargs)
# something that I need
self.conversation.last_message = self.body
最后,我想向我的API端点发送POST请求,例如
/api/conversation/<id>/messages/
它将使用每条新的最新消息更新Conversation
对象。
答案 0 :(得分:1)
您似乎错过了通话#{1}}方法。由于您只需要为新邮件更新会话,我认为最好覆盖序列化程序的save
方法:
create