Py学习  »  DjangoApp

djangoORM怎么获取数据在数据集中的排名?

fengwenrui1217 • 4 年前 • 807 次点击  
class Currency(models.Model):
    agent = models.OneToOneField('users.Agent', on_delete=models.CASCADE)
    consume_total = models.DecimalField(max_digits=10, decimal_places=2, help_text='个人销售额')
    class Meta:
        ordering = ['-consume_total']

我需要在视图里返回 用户的排名,排名是根据consume_total 这个字段的值进行排。

1,获取当前登录用户排在第几名

2,获取排名的前10名

3,获取当前用户排名的前5名和他之后的5名

class MyRank(APIView):
    permission_classes = [IsAuthenticated]

    def get(self, request):
        user = request.user
        res_data = {}
        count = Currency.objects.count()
        res_data['people_count'] = count  # 总人数
        #  获取当前用户排在第几名

        #  获取排名前10名

        #  获取当前用户排名的前5名和他之后的5名

        return Response(data=res_data)
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/34511
 
807 次点击