böyle gevşek tanımlanmış iki model var ayrı bir alanla sayımı açıklama: ArtıkDjango
class InformationUnit(models.Model):
username = models.CharField(max_length=255)
project = models.ForeignKey('Project')
...
class Project(models.Model):
name = models.CharField(max_length=255)
, bir görünümde, bir projeye ait olan tüm InformationUnits açıklama istiyoruz, bu yüzden bunu yapmak: ayrı 'kullanıcı adı' katılmak kaç her proje, içinde, Dahası, bilmek istiyorum sadece Tamam çalışan
p = Project.objects.all().annotate(Count('informationunit')
. Yani, bir projeyi oluşturan InformationUnits'te kaç tane 'kullanıcı adı' var. Ben aşağıdaki denedi, ama sadece kullanıcı adı ne olursa, InformationUnit sayar: username bir nesne olmadığını
p = Project.objects.all().annotate(Count('informationunit__username')
Not, bu bir dizidir. Bunu yapmak için temiz bir yol var mı yoksa döngülere ve spagetti koduna dayanan daha karmaşık bir kod oluşturmalı mıyım: P
Çok teşekkürler!
p = Project.objects.all().annotate(Count('informationunit__username',
distinct=True))
Bu belgelendirilmesi görünmüyor, ancak Kont'unu kaynağında bulabilirsiniz:
ile çalışır onaylayın Bu işe yaradı! Bunu bir yerlerde buldum ve hatta denedim (aslında soruyu sormadan önce yaptığım son şey buydu). Başlangıçta işe yaramadı, ancak bugün geliştirme sunucusunu yeniden başlattıktan sonra tekrar denedim ve hile yaptı: P Çok teşekkürler! – fenomenoxp
(Her halükarda) belgelenmiştir: https://docs.djangoproject.com/en/dev/ref/models/querysets/#django.db.models.Count.distinct –