Получение ошибки 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"
Надеюсь, я смог помочь, и поправьте меня, если есть лучшее решение.