2010-05-19 10 views
5

Sto lavorando a un'applicazione della scheda attività di Django e sto avendo problemi a capire come includere somme aggregate uguali a zero. Se faccio qualcosa del tipo:Django include somme aggregate di zero

entries = TimeEntry.objects.all().values("user__username").annotate(Sum("hours")) 

Ottengo tutti gli utenti che hanno voci di tempo e le loro somme.

[{'username': u'bob' 'hours__sum':49}, {'username': u'jane' 'hours__sum':10}] 

Quando ho filtro che da un dato giorno:

filtered_entries = entries.filter(date="2010-05-17") 

Chiunque non entra il tempo per quel giorno è esclusa. C'è un modo per includere quegli utenti le cui somme sono 0?

Grazie

risposta

0

Forse si potrebbe provare la relazione viceversa - iniziare con gli utenti, e il link alle voci:

User.objects.all().values("username").annotate(Sum("timeentry__hours")) 

funziona?

+0

Scusate, niente da fare. Grazie per il suggerimento però. Quanto sopra mi dà quello che sto cercando, ma per tutti i giorni. Non appena ho messo il filtro in tutte le persone a somma zero vengono rimossi. Ho provato il filtro dopo l'annotate() e prima. – tomas