Получить сессионный набор в Django Rest Framwork на каналах Django - PullRequest
1 голос
/ 02 мая 2019

У меня есть 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, в область каналов.

...