Как я могу использовать функцию "database_sync_to_async" для получения нескольких объектов
Я реализую потребитель, и хочу получить все товары, например:
class MyConsumer(AsyncConsumer):
async def get_all_producs():
products = await database_sync_to_async(Products.objects.all)()
Когда я пытаюсь получить все продукты из приведенного выше кода, возникает ошибка "You cannot call this from an async context - use a thread or sync_to_async."
Я знаю, что запрос ленив, но как я могу получить все продукты?
Насколько я понимаю, это невозможно. Превратите данные запроса в словарь и верните его.
@database_sync_to_async
def get_all_producs():
products = Products.objects.all()
dic = {}
for p in products:
dic[p.pk] = p.data
return dic
Примечание: Вы не можете отправить обратно объект напрямую, поскольку объекты не являются сериализуемыми в JSON.