J'ai deux modèles définis grossièrement comme ceci :
class InformationUnit(models.Model):
username = models.CharField(max_length=255)
project = models.ForeignKey('Project')
...
class Project(models.Model):
name = models.CharField(max_length=255)
Maintenant, dans une vue, je veux annoter tous les éléments suivants InformationUnit
qui appartiennent à un projet, donc je fais ça :
p = Project.objects.all().annotate(Count('informationunit')
ce qui fonctionne très bien.
De plus, je veux savoir, dans chaque projet, combien de projets distincts username
participent. C'est-à-dire, compter combien de personnes distinctes username
sont présents dans le InformationUnit
qui composent un projet. J'ai essayé ce qui suit, mais cela ne fait que compter le nombre de projets qui composent un projet. InformationUnit
indépendamment de la username
:
p = Project.objects.all().annotate(Count('informationunit__username')
Notez que username
n'est pas un objet, c'est une chaîne de caractères. Existe-t-il un moyen propre de faire cela ou dois-je créer un code plus compliqué à base de boucles et de code spaghetti :P
Merci beaucoup !