Ho un modello chiamato "StoreItem" e un modello denominato "QuoteItem". A QuoteItem punta su un StoreItem.annotato django - conteggio condizionale
Sto tentando di annotare un contatore di quanti punti di quotazione puntano sugli articoli del negozio, ma con condizioni da applicare sugli articoli del preventivo.
Ho provato qualcosa di simile:
items = items.annotate(
quote_count=Count(
Case(
When(quoteitem__lookup_date__in=this_week, then=1),
output_field=IntegerField()
)
)
)
'voci' sono un set di query di StoreItems. 'this_week' è un elenco di date che rappresentano questa settimana (questo è il filtro che cerco di applicare). Dopo aver fatto funzionare le date, voglio aggiungere più filtri a questo conteggio condizionale, ma iniziamo con quello.
Comunque quello che sto ricevendo è più simile a un valore booleano - se Quote elementi che corrispondono esiste la condizione, non importa quante ho, il contatore sarà 1. altro, sarà 0.
Si guarda come lo Count(Case())
controlla solo se esiste qualche elemento e in tal caso restituisce 1, mentre io lo voglio iterare su tutti gli elementi di preventivo che puntano sull'elemento del negozio e li contano, se corrispondono alla condizione (singolarmente).
Come posso farlo?