mam dwa modele zdefiniowane luźno tak:Django opisywanie liczyć z odrębną dziedzinę
class InformationUnit(models.Model):
username = models.CharField(max_length=255)
project = models.ForeignKey('Project')
...
class Project(models.Model):
name = models.CharField(max_length=255)
Teraz w widoku, chcę opisywać wszystkie InformationUnits należące do projektu, więc mogę to zrobić:
p = Project.objects.all().annotate(Count('informationunit')
który działa tylko ok Ponadto, chcę wiedzieć, w każdym projekcie, ile odrębne „username” uczestniczą. To znaczy policz, ile różnych "nazw użytkownika" znajduje się w jednostkach InformationUnits tworzących jeden projekt. Próbowałem następujących, ale to po prostu zlicza liczbę InformationUnit, bez względu na nazwę użytkownika:
p = Project.objects.all().annotate(Count('informationunit__username')
Należy pamiętać, że nazwa nie jest obiektem, jest to ciąg znaków. Czy jest na to czysty sposób, czy powinienem stworzyć bardziej skomplikowany kod oparty na pętlach i kodzie spaghetti: P
Wielkie dzięki!
To zadziałało! Znalazłem to gdzieś, a nawet wypróbowałem (faktycznie to była ostatnia rzecz, którą zrobiłem, zanim zadałem pytanie tutaj). Na początku nie działało, ale wypróbowałem to jeszcze raz, po ponownym uruchomieniu serwera programistycznego i to się udało: P Wielkie dzięki! – fenomenoxp
Jest to dokumentowane (teraz, tak czy inaczej): https://docs.djangoproject.com/en/dev/ref/models/querysets/#django.db.models.Count.distinct –