Управление несоответствующим состоянием атрибутов модели при переподключении WebSocket (Django Channels)

Теперь, поскольку я изменяю 'lobby_phase' при добавлении игрока2 и беру значение для трансляции непосредственно из экземпляра моей модели сразу после этого, я ожидаю, что игрок1 при обновлении будет иметь обновленное значение lobby_phase, чего не происходит, оставаясь значением по умолчанию 'waiting'. p2 при обновлении вместо этого получает правильное значение, и эта несогласованность сводит меня с ума.
логи для справки
enter image description here
p1 aka Keke подключается, print 'lobby_phase' добавляется как игрок1, снова print 'lobby_phase'.
p2 aka Baba подключается, печатает 'lobby_phase' , добавляется как p2, изменяет значение lobby_phase транслирует phase_change, беря значение прямо из db, печатает 'lobby_phase' (и оно правильное).
клиент 2 обновляется и на обоих отпечатках имеет правильное значение фазы лобби, а клиент 1 обновляется и снова имеет 'waiting'.

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

По крайней мере, я уверен, что проблема должна быть в бэкенде и что фронтенд меняет UI в зависимости от полученной фазы...

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