Django:如何將QuerySet與ForeignKey objects屬性上的字段進行比較?

我試圖根據(jù)foreignkey objects屬性上的字段查詢模型。我有以下型號:

class Song(models.Model):
  name = models.CharField(max_length=20)
  limit = models.IntegerField()


class Recording(models.Model):
  song = models.ForeignKey(Song, on_delete=models.CASCADE)
  status = models.CharField(
    max_length=1,
    choices=STATUS_CHOICES,
    default=OPEN
  )

我想查詢那些狀態(tài)為“打開”且計數(shù)超過“限制”(歌曲上的字段)的錄制的歌曲。通過查看django聚合文檔,我嘗試了以下方法:

# View

get(self):
  songs_count = Count('recording', filter=Q(recording__status='O'))
        songs = Song.objects.annotate(songs_count=songs_count)
        results = songs.filter(songs_count__gt=< each song.limit... >)

有人能指出如何建立這樣一個查詢的方法嗎?我非常感謝所有的反饋。

? 最佳回答:

您可以使用F對象[Django-doc]來引用字段,因此:

from django.db.models import F, Q

Songs.objects.annotate(
    songs_count=Count('recording', filter=Q(recording__status='O'))
).filter(songs_count__gt=F('limit'))
主站蜘蛛池模板: 国产成人高清视频一区二区 | 中文字幕一区二区三匹| 国产精品一区在线观看你懂的| 99久久精品费精品国产一区二区 | 国产精品美女一区二区视频| 亚洲成在人天堂一区二区| 国产一区二区三区在线免费观看| 免费萌白酱国产一区二区三区| 国产乱子伦一区二区三区| 无码喷水一区二区浪潮AV| 亚洲日韩AV一区二区三区中文 | 无码av免费一区二区三区试看| 日韩精品一区二区三区中文| 国产精品高清一区二区三区 | 色噜噜一区二区三区| 亚洲毛片αv无线播放一区| 蜜桃无码AV一区二区| 日本在线观看一区二区三区| 日本高清不卡一区| 日本一区二区三区在线视频观看免费| 国产福利电影一区二区三区,亚洲国模精品一区 | 国产成人精品一区二三区| 好爽毛片一区二区三区四无码三飞| 国产主播福利一区二区| 成人精品一区二区三区校园激情| 国产精品资源一区二区| 国产精品毛片a∨一区二区三区| 一区二区三区观看| 日韩精品无码Av一区二区| 亚洲一区影音先锋色资源| 亚洲国产精品一区二区久| 精品国产一区二区三区久| 精品国产亚洲一区二区在线观看| 日韩人妻无码一区二区三区| 亚洲欧美日韩一区二区三区在线| 高清一区二区三区| 国模极品一区二区三区| 日本一区二区三区在线观看| 福利国产微拍广场一区视频在线 | 天堂va视频一区二区| 中文字幕在线精品视频入口一区|