Имя группы не принимает пробелы django-channels

Я работаю над приложением чата с каналами django, все работает, но сообщения не отправляются, когда в названии комнаты есть пробелы или другие специальные символы, в идеале я хотел бы, чтобы пользователь мог быть свободен и называть свою комнату так, как он хочет, и включать пробелы также.

/* consumers.py: class ChatConsumer(AsyncWebsocketConsumer): async def connect(self): self.room_name = self.scope['url_route']['kwargs']['room_name']. self.room_group_name = 'chat_%s' % self.room_name

            # Join room
            await self.channel_layer.group_add(
                self.room_group_name,
                self.channel_name
            )
    
            await self.accept()
    
        async def disconnect(self, close_code):
            # Leave room
            await self.channel_layer.group_discard(
                self.room_group_name,
                self.channel_name
            )
    
        # Receive message from web socket
        async def receive(self, text_data):
            data = json.loads(text_data)
            message = data['message']
            username = data['username']
            room = data['room']
    
            await self.save_message(username, room, message)
    
            # Send message to room group
            await self.channel_layer.group_send(
                self.room_group_name,
                {
                    'type': 'chat_message',
                    'message': message,
                    'username': username
                }
            )
    
        async def chat_message(self, event):
            message = event['message']
            username = event['username']
    
            # Send message to WebSocket
            await self.send(text_data=json.dumps({
                'message': message,
                'username': username,
                'timestamp': timezone.now().isoformat()
            }))
    
        @sync_to_async
        def save_message(self, username, room, message):
            if len(message) > 0:
                Message.objects.create(username=username, room=room, content=message)
    
    
    routing.py:
    websocket_urlpatterns = [
        path('ws/<str:room_name>/', consumers.ChatConsumer.as_asgi()),
    ]
    
    
    urls.py:
    urlpatterns = [
        path('', views.index, name='index'),
        path('<str:room_name>/', views.room, name='room'),
    ]
    
    
    index.html:
     <script>
     document.querySelector('#room-name-input').focus();
    
         
          document.querySelector("#room-name-input, #username-input").onkeyup = function(e) {
            if (e.keyCode === 13) {
              document.querySelector('#room-name-submit').click();
            }
          };
    
          document.querySelector('#room-name-submit').onclick = function(e) {
            var roomName = document.querySelector('#room-name-input').value;
            var userName = document.querySelector('#username-input').value;
            window.location.replace(roomName + '/?username=' + userName);
          };
        </script>

*/

Вернуться на верх