如何在Django中显示前5名用户列表


我用Django创建了一个系统。在这个系统中,用户做一些分析。我将这些分析的信息保存在一个名为";ApprovalProcess";。我如何显示在";审批流程"?

型号.py

class ApprovalProcess(models.Model):
id = models.AutoField(primary_key=True)
user_id = models.ForeignKey(UserProfile, on_delete=models.CASCADE, null=True, related_name='starter')
doc_id = models.ForeignKey(Pdf, on_delete=models.CASCADE, null=True)
...
customer = models.ForeignKey(Customer, on_delete=models.CASCADE, null=True)

视图.py

def approval_context_processor(request):
approval_list = ApprovalProcess.objects.filter(user_id__company=current_user.company) 
context = {
'approval_list ': approval_list,
.... 
}
return context
from django.db.models import Count
approval_list = ApprovalProcess.objects.values('user_id').annotate(Count('user_id')).order_by('-user_id__count')[:5]

首先,我们在表中找到重复的user_id并对其进行计数。然后,我们在-user_id__count中按-降序排列,得到表中重复的5个用户。抱歉我英语不好。

最新更新