我想要每个电台播放的所有歌曲。
class Airplay(Timestamps):
song = models.ForeignKey(Song, on_delete=models.CASCADE)
radio = models.ForeignKey(Radio, on_delete=models.CASCADE)
airedAt = models.DateTimeField(blank=True)
我试着像这样计算播放
Airplay.objects.all().annotate(play_count=Count(Concat('song__id', 'radio__id'), distinct=True)).order_by('play_count')
我看到几次出现歌曲x台组合。但play_count
总是1。
试试这个:
Airplay.objects.values('song', 'radio').annotate(play_count=Count('*')).order_by('play_count')
这将计算song
实例在radio
实例上播放的次数。