Je souhaite effectuer une opération de filtrage sur mon jeu de requête de la forme (x = True) ou ((x = False) et (autre condition)). Lorsque j'essaie la commande suivante, j'obtiens une erreur. Aucune suggestion.Queryset Django avec objet Q
Opération
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)
Erreur
TypeError: (<Q: (AND: ('mission__send_remaining_items__is', False))>, <Q: (AND: ('id__count__gte', <CombinedExpression: F(mission__items_per_mission) + Value(1)>))>)
Quel est le tuple de Q's censé atteindre? – dhke
@dhke J'ai mis à jour ma question – Simar
si vous partagez votre modèle et la sortie que vous voulez voir, il sera utile d'obtenir une réponse précise. – FatmaT