Python Django频道[multichat示例]:如何设置admin以允许向文件室添加用户?

Python Django频道[multichat示例]:如何设置admin以允许向文件室添加用户?,python,django,django-channels,Python,Django,Django Channels,我正在尝试基于以下示例构建自定义聊天服务器: 到目前为止,我已经使用了基本代码,但现在我希望修改/admin页面,以允许将一个或多个用户添加到一个文件室,而不仅仅是让用户“加入”一个文件室。我对Python2/3和Flask很有经验,但对Django来说还是相当陌生的,我花了几个小时试图找到线索或相关代码,但迄今为止没有多少成功 似乎“管理操作”对调用chat.consumers.chat_join()很有用,我还认为我需要向chat.models的Room类添加一个“user”字段,但现在我

我正在尝试基于以下示例构建自定义聊天服务器:

到目前为止,我已经使用了基本代码,但现在我希望修改/admin页面,以允许将一个或多个用户添加到一个文件室,而不仅仅是让用户“加入”一个文件室。我对Python2/3和Flask很有经验,但对Django来说还是相当陌生的,我花了几个小时试图找到线索或相关代码,但迄今为止没有多少成功

似乎“管理操作”对调用chat.consumers.chat_join()很有用,我还认为我需要向chat.models的Room类添加一个“user”字段,但现在我不确定下一步该怎么做。我已经学习了官方Django文档、示例/频道代码本身和许多其他网站,但我希望能得到一些帮助

如果其他人处于类似情况,有两点需要注意:

  • Django组(管理员)与channel.Group无关
  • 用户当前可以“加入”房间,但这是一种非常松散的耦合关系,没有记录在DB(postgres)中。我希望以后再加上这种坚持
  • 我一直找不到任何相关的管理员。例如,将任务分配给用户,这让我相当惊讶

    先谢谢你

    理查德 PS看来我只能发布一个链接-对此表示歉意。

    在models.py.Room中:

    owner=models.ForeignKey(用户,on\u delete=models.SET\u NULL,NULL=True)

    在utils.py.get\u room\u或\u error()中:

    ForeignKey的使用允许通过管理员页面将用户分配到房间

    真的很简单,只要你知道怎么做:-)


    我仍然需要允许“员工”访问,但这应该很容易。

    将房间想象成一张桌子,记录每个请求和访问的成员。这样你就可以清楚地知道下一步该做什么。现在,您是否希望创建“Admin enable to chat to the room”(管理员启用聊天室)并通过选择字段“enable/Disable=default”进行操作,然后在您的消费者功能中处理每条消息当这些特定条件不满足时,您可以随意丢弃消息。感谢您的回复,但在阅读之后,我现在找到了自己的解决方案。
    username = user.get_username()
    if username != str(room.owner):
        raise ClientError("ROOM_ACCESS_DENIED")