Задать вопрос
NickITDir
@NickITDir
Начинающий разработчик

Почему обработчик не присылает объекты?

Пытаюсь достать из базы данных объекты, но он зависает на моменте перехода в цикл.

ранее была фильтрация, но сейчас хотел попробовать хотя бы все вытащить. не получается
@dp.message(F.text == "Разовые заявки")
async def handle_one_time_tasks(message: Message):
    print('Кнопку нажали')
    tasks = Task.objects.all()
    print('таски нашли')
    if tasks:
        print('да таски есть')
        for task in tasks:
            await message.answer(f"Задача: {task.title}\nОписание: {task.description}\nСрок: {task.deadline}")
    else:
        await message.answer("Разовых задач нет.")


фильтрация выглядит вот так
tasks = await Task.objects.filter(status='assigned', notification_sent=False).all()

помогите разобраться что не так
Django ORM
  • Вопрос задан
  • 69 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
@Derfirm
Noname Developer.
Хотелось бы понять, почему для фильтрации происходит вызов `await`, но при этом фетч выглядит как синхронный.

Можно попросить расширить вопрос, добавив версии используемых библиотек, фреймворка и немного подробнее об объекте Task
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
NickITDir
@NickITDir Автор вопроса
Начинающий разработчик
Разобрался.
Не знаю на сколько правильно.
Стал преобразовывать в список для итераций. задачи передаются
tasks = await sync_to_async(Task.objects.filter)(is_recurring=False, status='assigned')
tasks = await sync_to_async(list)(tasks)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы