我有一个用户查询集,在使用 Django Window 函数注释每个用户的排名后,我想在不修改排名值的情况下查询用户
users_points_query = users.order_by(
'-total_points'
).annotate(
rank=Window(
expression=Rank(),
order_by=[
F('total_points').desc()
],
)
)
这很好用,但是在users_points_query
查询过滤时,会再次计算排名,因此第一个用户将获得 1 的排名,这是基于第一行的,依此类推。