2个字段的计数组合



我想要每个电台播放的所有歌曲。

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实例上播放的次数。

相关内容

  • 没有找到相关文章

最新更新