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

问答 0123 ⋅ 于 2019-06-12 17:49:37 ⋅ 2703 阅读

我有一个数据表

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)
成为第一个点赞的人吧 :bowtie:
回复数量: 0
    暂无评论~~
    • 请注意单词拼写,以及中英文排版,参考此页
    • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
    • 支持表情,可用Emoji的自动补全, 在输入的时候只需要 ":" 就可以自动提示了 :metal: :point_right: 表情列表 :star: :sparkles:
    • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif,教程
    • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
    Ctrl+Enter