我有一个出租电影商店的下一个模型。也就是说,UserRating表存储与用户相关的电影的分级。我试着做一个视图,在那里可以得到相应的图像的电影分级排序。我知道如何按等级分类(UserRating.objects.values值('movie\u id').annotate(dcount=Sum('vote')).order\u by('dcount'))。我现在的问题是?如何得到我拍的这些电影的影像?你知道吗
class Movie(models.Model) :
title = models.CharField(max_length=200, primary_key=True)
movie_image = models.ImageField()
class User(models.Model):
name = models.CharField(max_length=200, primary_key=True)
email = models.CharField(max_length=200)
def __str__(self):
return self.name
def __unicode__(self):
return self.name
class UserRating(models.Model) :
vote = models.IntegerField()
class Meta:
unique_together = (('user', 'movie'),)
movie = models.ForeignKey(Movie, on_delete=models.CASCADE)
user = models.ForeignKey(User, on_delete=models.CASCADE)
一般来说,在Django中,如果您最终想要返回有关某个模型的数据,则必须通过该模型的对象管理。在本例中,您要从Movie中查找字段,因此请开始使用Movie对象管理器。你知道吗
为FK关系建立一个自动的反向关系,这在ORM中是可用的。ORM代码最终看起来是这样的(我按票数降序排列,因为我假设您首先想要大多数投票的电影):
生成的SQL是:
最后,我使用了Count而不是Sum,因为我假设你想知道一部电影有多少票,而不是所有主键的总和:)
相关问题 更多 >
编程相关推荐