Я создаю приложение django с комментариями и голосую за эти комментарии в стиле stackoverflow или reddit.При выборе комментариев я хотел бы узнать как общее количество голосов, так и то, проголосовал ли пользователь по данному конкретному комментарию.Я могу использовать аннотацию для совокупного количества следующим образом:
video_comments = Comment.objects.filter(video_id=video_id).annotate(vote_sum=Sum('commentvote__value'))
Могу ли я также аннотировать подмножество комментариев?Что-то вроде:
.annotate(user_vote=Sum('commentvote__value').filter(commentvote__user == user))
Для справки, это моя модель:
class Comment(models.Model):
video_id = models.CharField(max_length=12, db_index=True)
video_time = models.FloatField()
comment = models.TextField(max_length=MAX_COMMENT_LENGTH)
datetime = models.DateTimeField(auto_now_add = True)
user = models.ForeignKey(User)
class CommentVote(models.Model):
comment = models.ForeignKey(Comment, db_index=True)
value = models.IntegerField() # Should be 1 or -1
datetime = models.DateTimeField(auto_now_add = True)
user = models.ForeignKey(User, db_index=True)