Python 查询以获取最高评分的x,最低评分为x人
model.pyPython 查询以获取最高评分的x,最低评分为x人,python,django,django-models,django-rest-framework,django-views,Python,Django,Django Models,Django Rest Framework,Django Views,model.py class Movie(models.Model): id = models.AutoField(primary_key=True) title = models.CharField(max_length=100) vote_count = models.IntegerField() class Watchlist(models.Model): userid = models.IntegerField() movie_id = mode
class Movie(models.Model):
id = models.AutoField(primary_key=True)
title = models.CharField(max_length=100)
vote_count = models.IntegerField()
class Watchlist(models.Model):
userid = models.IntegerField()
movie_id = models.ForeignKey(Movie, on_delete=models.CASCADE)
rating = models.IntegerField()
查询以获取至少5人观看的顶级电影。您应该阅读有关的基本知识 在您的情况下,类似这样的方法应该会起作用:
from django.db.models import Count, Sum, F
qs = Movie.objects.annotate(vote_count=Count('watchlist_set'),
vote_sum=Sum('watchlist_set__rating'),
rating = F('vote_sum')/F('vote_count')
).filter(
vote_count__gte=5,
).order_by(
'-rating'
)
您好,欢迎来到stackoverflow,我邀请您阅读:,如果您想讨论如何做,可以添加一个minium示例,或者显示您正在做什么以及您在哪里遇到了问题,以便其他人能够提供帮助