Python 如何获得评论最多的记录集?
请通过ORM帮助提出请求 是视频评论的模型:Python 如何获得评论最多的记录集?,python,django,Python,Django,请通过ORM帮助提出请求 是视频评论的模型: class Comment(models.Model): user = models.ForeignKey( User, verbose_name=u"Пользователь", blank=True, null=True, ) user_no_auth = models.CharField( verbose_name=u'Польз
class Comment(models.Model):
user = models.ForeignKey(
User,
verbose_name=u"Пользователь",
blank=True,
null=True,
)
user_no_auth = models.CharField(
verbose_name=u'Пользователь не авторизованный',
max_length=100,
default=None,
null=True,
blank=True,
)
comment = HTMLField(
verbose_name=u'Комментарий',
max_length=50000,
default=None,
blank=True,
)
video_id = models.IntegerField(
verbose_name=u'Номер видео',
default=None,
null=True,
blank=True,
)
date = models.DateTimeField(
verbose_name=u'Дата создания',
default=datetime.now(),
auto_now=True,
)
last_edit_date = models.DateTimeField(
verbose_name=u'Дата последнего редактирования',
default=datetime.now(),
auto_now=True,
)
is_active = models.BooleanField(
verbose_name=u'Активно',
default=True,
)
该模型填充为
我需要获得一组标识符视频id,这些标识符的总评论数更多首先,您的模型定义错误。我在视频模型的评论模型中没有看到外键<代码>视频\u id作为IntegerField不属于那里。应该是这样的: 既然你没有发布你的视频模型,我就编一个:
class V_Video(models.Model): #
name = models.CharField(max_length=100)
# ....
class Comment(models.Model):
video = models.ForeignKey(V_Video, related_name="video_comments")
# .. other fields
获取评论最多的5个视频的查询是:
videos_with_most_comments = V_Video.objects.annotate(
num_comments=Count('video_comments')
).order_by('-num_comments')[:5]
这是欢迎来到StackOverflow的!请务必阅读有关StackOverflow的文章。同时,尽量将代码示例限制为演示问题所需的最小代码。