У меня есть REST API, в котором используется Django Rest Framework, поэтому я пытаюсь достичь:
- Когда пользователь делает запрос к API, установите сеанс. Эта сессия
содержит случайную строку.
- После того, как сеанс установлен в запросе DRF, получите сеанс по каналам Django, а когда пользователь подключится, отправьте его обратно через Websocket.
Но я не могу получить сеанс в каналах Django.
Я не могу прикрепить код, где я устанавливаю ключ в сеансе, потому что это огромный код. Я просто прикрепляю простую строку:
request.session['random_key'] = 'somerandomkey'
Это мой код канала Django:
Это код моих каналов:
def connect(self):
# Don't let anybody
if self.scope['session'].get('random_key'): # Not working, i am not getting the random_key
async_to_sync(self.channel_layer.group_add)(
self.scope['session'].get('random_key'),
self.channel_name)
self.accept()
НО! Когда я делаю запрос к API и устанавливаю сеанс, этот набор сеансов недоступен в сеансе в каналах. Если я устанавливаю сеанс в «нормальном» запросе Django, он существует в сеансах каналов Django. Так что проблема с Django Rest Framework, я не получаю сеансы, установленные в Django Rest Framework, в область каналов.