我有松散的定义如下两种型号:Django的注释计数和不同领域
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')
其工作只是OK 此外,我想知道,在每一个项目中,有多少不同的“用户名”参与。 也就是说,计算组成一个项目的InformationUnits中有多少个不同的'用户名'。 我曾尝试以下,但它只是计数,而不管用户名InformationUnit的数量,:
p = Project.objects.all().annotate(Count('informationunit__username')
注意,用户名是不是一个对象,它是一个字符串。有没有干净的方式来做到这一点,或者我应该创建一个更复杂的代码基于循环和意大利面代码:P
非常感谢!
它的工作! 我发现这个地方甚至尝试过(实际上这是我在问这个问题之前做的最后一件事)。一开始它没有工作,但在重新启动开发服务器之后,今天又试了一次,它的确做到了:P非常感谢! – fenomenoxp
这是记录(现在,无论如何):https://docs.djangoproject.com/en/dev/ref/models/querysets/#django.db.models.Count.distinct –