Получение ошибки use a thread или sync_to_async

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

django.core.exceptions.SynchronousOnlyOperation: You cannot call this from an async context - use a thread or sync_to_async.

А вот мой websocket_connect из consumers.py

    async def websocket_connect(self, event):
        print('connected', event)
        user = self.scope['user']
        print(user.online)
        threads = Thread.objects.filter(participant__user=user).prefetch_related()
        for thread in threads:
            chat_room = f'user_chatroom_{thread.id}'
            self.chat_room = chat_room
            await self.channel_layer.group_add(
                chat_room,
                self.channel_name
            )
        await self.send({
            'type': 'websocket.accept'
        })

Я рад каждому ответу!

Я пытался изменить переменную threads, но я не могу изменить ее, так как она мне нужна.

Исправил это сейчас (временно). Возможно, это не лучшее решение, но это то, что помогло мне.

import os

os.environ["DJANGO_ALLOW_ASYNC_UNSAFE"] = "true"

Надеюсь, я смог помочь, и поправьте меня, если есть лучшее решение.

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