Я хочу выполнить операцию фильтрации на моем запросе вида (x = True) или ((x = False) и (какое-то другое условие)). Когда я попробую выполнить следующую команду, я получаю сообщение об ошибке. Какие-либо предложения.Django queryset с объектом Q
Операция
Item.objects.filter(mission_id__in=mission_ids).exclude(id__in=attempted_items).filter(
answers_left_count__gte=1, is_active=True, is_test_data=False
).values_list("mission_id", 'mission__items_per_mission', 'mission__send_remaining_items').annotate(
Count('id') # Get item count
).filter(Q(mission__send_remaining_items=True) | (
Q(mission__send_remaining_items=False), Q(id__count__gte=F('mission__items_per_mission') + 1))).values_list(
"mission_id", flat=True)
Ошибка
TypeError: (<Q: (AND: ('mission__send_remaining_items__is', False))>, <Q: (AND: ('id__count__gte', <CombinedExpression: F(mission__items_per_mission) + Value(1)>))>)
Что такое кортеж Q's должен достичь? – dhke
@dhke Я обновил свой вопрос – Simar
, если вы поделитесь своей моделью и выходом, который хотите увидеть, будет полезно получить точный ответ. – FatmaT