2010-05-19 10 views
5

Ich arbeite an einer Django Timesheet-Anwendung und habe Probleme herauszufinden, wie Summen Summen, die gleich Null sind. Wenn ich etwas mache wie:Django Include Aggregate Summe von Null

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

Ich bekomme alle Benutzer, die Zeit Einträge und ihre Summen haben.

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

Wenn ich Filter, der von einem bestimmten Tag:

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

Wer keine Zeit eingegeben haben für diesen Tag ist ausgeschlossen. Gibt es eine Möglichkeit, die Benutzer einzuschließen, deren Summe 0 ist?

Dank

Antwort

0

Vielleicht könnten Sie die Beziehung versuchen umgekehrt - mit den Nutzern starten, und Link zu den Einträgen:

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

funktioniert das?

+0

Entschuldigung, auch keine Würfel mit diesem. Danke für den Vorschlag. Das obige gibt mir, wonach ich suche, aber für alle Tage. Sobald ich den Filter in die Null-Summe setze werden die Leute entfernt. Ich habe den Filter nach dem Kommentar() und vorher versucht. – tomas