У меня есть две модели, определенные так:
class InformationUnit(models.Model):
username = models.CharField(max_length=255)
project = models.ForeignKey('Project')
...
class Project(models.Model):
name = models.CharField(max_length=255)
Теперь, в представлении, я хочу аннотировать все объекты InformationUnits, принадлежащие проекту, поэтому я делаю это:
p = Project.objects.all().annotate(Count('informationunit')
который работает нормально Кроме того, я хочу знать, в каждом проекте, сколько разных "имени пользователя". То есть, подсчитайте, сколько различных "имени пользователя" есть в InformationUnits, которые составляют один проект. Я пробовал следующее, но он просто подсчитывает количество InformationUnit, независимо от имени пользователя:
p = Project.objects.all().annotate(Count('informationunit__username')
Обратите внимание, что имя пользователя не является объектом, это строка. Есть ли чистый способ сделать это или я должен создать более сложный код на основе циклов и кода спагетти: P
Спасибо большое!