def get(self, request, *args, **kwargs):
# users = (User.objects
# .filter(is_active = 1)
# .values('id', 'contributor__full_name')
# .annotate(Count("id"), poems_count = Count('poem__id'))
# .order_by('-poems_count'))
users = User.objects.raw('''
SELECT
users.id, uc.full_name as contributor__full_name, COUNT(poem.id) as poems_count
FROM
auth_user as users
JOIN user_contributor as uc ON uc.user_id=users.id
JOIN poetry_poem as poem ON poem.added_user_id=users.id AND poem.is_shown=1
WHERE users.is_active=1
GROUP BY users.id
ORDER BY poems_count DESC
''')
return render(request, self.template_name, {
'users': users
})
评论列表
文章目录