Django新手问题:获取关联ForeignKey的计数,条件是ForeignKey表中的字段?
新手问题。我有这样的Django模型:Django新手问题:获取关联ForeignKey的计数,条件是ForeignKey表中的字段?,django,Django,新手问题。我有这样的Django模型: class Video(models.Model): uploaded_by = models.ForeignKey('VideoUser') problem_video = models.BooleanField(default=False) class VideoUser(models.Model): name = models.CharField(max_length=250 ) def num_videos(sel
class Video(models.Model):
uploaded_by = models.ForeignKey('VideoUser')
problem_video = models.BooleanField(default=False)
class VideoUser(models.Model):
name = models.CharField(max_length=250 )
def num_videos(self):
num_videos = Video.objects.filter(uploaded_by=self, problem_video=false).count()
return num_videos
我希望能够制作一个至少上传了一个无问题视频的用户排行榜,按他们上传的无问题视频数量排序
我可以通过annotate
部分实现,我可以生成一个有序列表,但我不知道如何使它以问题\u video
字段为假为条件
leaderboard = VideoUser.objects. \
.annotate(num_submissions=Count('videosubmission')) \
.filter(num_submissions__gt=0).order_by('-num_submissions')
有人能建议如何扩展此功能以将
问题\u video
字段也考虑在内吗?也许我需要一张桥接表…?如果我没记错的话
leaderboard = VideoUser.objects. \
.annotate(num_submissions=Count('videosubmission')) \
.filter(num_submissions__gt=0, video__problem_video=False).order_by('-num_submissions')