计算 django 中关注股票的用户数量

问题描述 投票:0回答:1

我需要获取用户跟随的顶级股票代码,问题是当两个或更多用户关注同一代码时,在使用查询

Tickers.objects.annotate(followers=Count('users')).order_by('followers')
时会重复,如下所示:

Top Tickers

在此示例中,代码

FDCFF
需要成为顶部代码,因为有两个用户正在关注它,相反,它会重复并且不会显示为顶部跟随的代码。

模型.py

class Tickers(models.Model):
    symbol = models.CharField(max_length=100)
    name = models.CharField(max_length=100)
    users = models.ManyToManyField(User, related_name='tickers')

views.py

def index(request):
    tickers = Tickers.objects.annotate(followers=Count('users')).order_by('followers')
    context = {
    'tickers': tickers,
    }
    return render(request, 'main_index.html', context=context)
python django
1个回答
0
投票

您应该按降序顺序排序,所以

-followers
,而不是
followers

定义索引(请求):
    tickers = Tickers.objects.annotate(followers=Count('users')).order_by(
        '-关注者'
    )
    上下文={
        “股票行情”:股票行情,
    }
    返回渲染(请求,'main_index.html',context=context)
© www.soinside.com 2019 - 2024. All rights reserved.