Как избавиться от этой ошибки? SynchronousOnlyOperation: Вы не можете вызвать это из асинхронного контекста - используйте поток или sync_to_async
Я использую асинхронность в django и столкнулся со следующей проблемой: Можно выполнить запрос aget() для модели AccountUser, но для модели CabinetUser - нет. При выполнении запроса aget() для модели CabinetUser я получаю ошибку: SynchronousOnlyOperation: You cannot call this from an asynccontext - use a thread or sync_to_async.
Мои модальности:
Необходимо получить шкафы, для этого я использую метод:
class DBPayout:
async def get_cabinet_user(self, cabinet_id):
try:
cabinet = await CabinetUser.objects.aget(id=cabinet_id)
return cabinet
except CabinetUser.DoesNotExist as err:
print(err)
except SynchronousOnlyOperation as err:
print(err)
except Exception as err:
print(err)
Я получаю ошибку: SynchronousOnlyOperation: Вы не можете вызвать это из асинхронного контекста - используйте поток или sync_to_async.
Я попытался выполнить запрос из модели AccountUser:
class DBPayout:
async def get_cabinet_user(self, cabinet_id):
try:
cabinet = await AccountUser.objects.aget(id=cabinet_id)
return cabinet
except AccountUser.DoesNotExist as err:
print(err)
except SynchronousOnlyOperation as err:
print(err)
except Exception as err:
print(err)
Здесь запрос обрабатывается и выдает ответ: AccountUser, соответствующий запросу, не существует. Это правильно, так как такой записи там нет. Не понимаю, почему при обращении к модели CabinetUser пишет асинхронную ошибку.
В settings.py установлен ASGI_APPLICATION.