子供(ランク)を持つモデル(トラック)があります。このやったとき子供の数がフィルタリングされた後に子どもが爆発する
class Track(models.Model):
id = models.CharField('Unique ID', max_length=100,
primary_key=True)
title = models.CharField('Track title', max_length=100)
artist = models.CharField('Artist name', max_length=100)
class Rank(models.Model):
id = models.AutoField(primary_key=True)
trackid = models.ForeignKey(Track, related_name='rank')
cdate = models.DateField("Date", blank=True, null=True)
:
track_list = Track.objects.filter(Q(artist__icontains=query) |
Q(title__icontains=query)) \
.annotate(children=Count('rank'))
for track in track_list:
print(track.children)
をトラックあたりの子供の数は、すべて(例えば65,78,95)100に接近していると、それが正しいことは、と(簡体字)に記述することができます。
しかし、私はさらに下別のフィルタや必要な注釈を適用することにより、クエリセットを絞り込むとき:
はtrack_list = track_list.distinct() \
.filter(rank__cdate__year=filterquery) \
.annotate(entrydate=Min('rank__cdate')) \
.annotate(children=Count('rank'))
for track in track_list:
print(track.children)
子どもの数は、トラックあたり数千に爆発します。 アイデア
ありがとうをお試しください!魅力のように動作します –