Django + Каналы: сообщение прерывается при постинге

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

Когда я публикую новую игру, я хотел бы, чтобы список игр обновлялся для всех подключенных пользователей страницы.

My consumer.py:

    def receive(self, text_data):
        games = serialize_games()

        # Send new game info to Lobby
        async_to_sync(self.channel_layer.group_send)( 'Lobby', { 'type': 'message_to_lobby', 'message': games, })

    def message_to_lobby(self, event):
        print('messages sent to lobby')
        message = event['message']
        self.send(text_data = message)

В моем шаблоне есть часть кода jquery, которая посылает сообщение в websocket непосредственно перед отправкой сообщения:

$("#create_game_form").submit(function(e) { alert('sent');LobbySocket.send(JSON.stringify({ 'message': 'reload' }));});

Во время постинга функция receive вызывается, а обработчик сообщения (message_to_lobby) - нет, поскольку рендеринг в секции представления отключает websocket до...

Поможет ли использование асинхронных функций вместо этого (я не очень понимаю, почему...)? Или, может быть, Django + каналы не предназначены для того, чтобы POST и каналы работали вместе?

В противном случае, у меня может быть возможность попросить потребителя посылать сигнал обновления пользователям группы через 2 секунды или что-то вроде этого, но я не нахожу это очень элегантным.

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