我为消息创建了一个模型。用户可能有很多消息。许多用户都可以阅读消息。
类似于Slack的群聊。
class Message(models.Model):
user = models.ForeignKey(User)
users_read = models.ManyToManyField(User, related_name='read_messages')
date_created=models.DateTimeField(auto_now_add=True)
text = models.CharField(max_length=500)
这是在模型中引用这些的正确方法吗?
答案 0 :(得分:0)
是的,您是对的,但您可以将Chat
模型与Message
一起使用。
class Chat(models.Model):
admin = models.ForeignKey(User)
participants = models.ManyToManyField(User, related_name='chats')
created = models.DateTimeField(auto_now_add=True)
class Message(models.Model):
user = models.ForeignKey(User)
chat = models.ForeignKey(Chat, on_delete=models.CASCADE, related_name='messages')
created = models.DateTimeField(auto_now_add=True)
text = models.TextField(max_length=500) # what length you want
此结构可让您轻松跟踪消息和聊天记录。