Как избавиться от этой ошибки? 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.

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