Django:user';s列表
如何从另一个模型返回用户发布的项目,例如我有一个名为Post的模型(Author作为用户Auth模型的外键)。如何返回用户列表和每个用户的帖子数?可能是列表中每个人的最新帖子Django:user';s列表,django,Django,如何从另一个模型返回用户发布的项目,例如我有一个名为Post的模型(Author作为用户Auth模型的外键)。如何返回用户列表和每个用户的帖子数?可能是列表中每个人的最新帖子 def users_list(request): users = UserProfile.objects.all() for userposts in users: posts_count = Post.objects.filter(author=users.user).count()
def users_list(request):
users = UserProfile.objects.all()
for userposts in users:
posts_count = Post.objects.filter(author=users.user).count()
return render_to_response('users.html',{'users':users,'posts_count':posts_count})
示例用法:
:
可以使用annotate()子句生成每个对象的摘要。当指定annotate()子句时,QuerySet中的每个对象都将使用指定的值进行注释
不要与以下内容混淆:
我们需要的是一种计算属于此查询集的对象的摘要值的方法。这是通过在QuerySet上追加aggregate()子句来完成的
- annotate():聚合查询集的每个项
- 聚合():聚合查询集的所有项
UserProfile.objects.all().annotate(num_posts=Count('post'))
for user in User.objects.annotate(post_count=Count('post')):
print user.post_count