如何为聊天室设置Django模型?

时间:2019-04-11 19:03:40

标签: django django-models

我想创建一个应用程序,用户可以在其中订阅房间并像聊天室一样互相发送信息。

我的想法如下:

  • 用户可以有多个组。

  • 房间可以有多个用户和帖子。

  • 帖子有一位用户作为其作者,可以在多个位置发布 一次房间。

class Room(models.Model):
    roomname = models.CharField(max_length=6)

class Post(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()
    date_posted = models.DateTimeField(default=timezone.now)
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    rooms = models.ManyToManyField(Room)

设置Django模型的最佳方法是什么,如何在用户与模型中的房间之间添加关系?

1 个答案:

答案 0 :(得分:0)

聊天室权限规则:

  1. 用户可以预订多个房间,一个房间可以链接到 很多用户。
  2. 邮件只能属于一个用户,但一个用户可能拥有 很多消息。
  3. 一个房间可能包含许多来自不同地方的消息 用户。

class Room(models.Model):
    subscribers = models.ManyToManyField(User, blank=True) #(1)
    name = models.CharField(...)
    ...

class Message(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE) #(2)
    room = models.ForeignKey(Room, on_delete=models.CASCADE) #(3)
    message = CharField(...)
    ...
  

注意:该模型结构取自Django-Chatrooms

从那里您可以自定义房间,将其设为私人房间或将访问权限限制为 n 个人,等等...

您始终可以获取现有项目并轻松地从其资源库中获取灵感。