如何从Django中的模型中获取拥有投票权的对象?
我正在创建一个系统来对视频的评论进行评级,例如youtube,你可以对评论投票“喜欢”或“不喜欢”(1,0,带有布尔字段),如果喜欢的数量越大,这些将显示在顶部,我知道如何获取视频的评论并显示它们,但我的问题是,当我试图用每个人的投票来获得评论时: 我有这些模型:如何从Django中的模型中获取拥有投票权的对象?,django,Django,我正在创建一个系统来对视频的评论进行评级,例如youtube,你可以对评论投票“喜欢”或“不喜欢”(1,0,带有布尔字段),如果喜欢的数量越大,这些将显示在顶部,我知道如何获取视频的评论并显示它们,但我的问题是,当我试图用每个人的投票来获得评论时: 我有这些模型: class Video(models.Model): name = models.CharField() #and more things class Comment(models.Model): text
class Video(models.Model):
name = models.CharField()
#and more things
class Comment(models.Model):
text = models.TextField(max_length=250)
video = models.ForeignKey(Video)
user = models.ForeignKey(User)
class RatingComment(model.Model):
comment = models.ForeignKey(Comment)
user = models.ForeignKey(User)
vote = models.BooleanField()
因此,在我看来,我可以通过以下方式获得视频评论:
res=Video.objects.get(别名为某物)
coms=Comment.objects.filter(video=res)
然后,我用这个值对模板进行render_to_响应。但我需要得到的评论与喜欢和不喜欢的计数
?如何创建它?使用Queryset修饰符:
Comment.objects.select_related('ratingcomment_set').extra(
select={
'likes': 'SELECT COUNT(*) FROM applabel_ratingcomment WHERE applabel_ratingcomment.comment_id = applabel_comment.id and applabel_ratingcomment.vote = 1'
'dislikes': 'SELECT COUNT(*) FROM applabel_ratingcomment WHERE applabel_ratingcomment.comment_id = applabel_comment.id and applabel_ratingcomment.vote = 0'
},
)
+1.对于不同的数据模型,可以只使用注释: