我有一个游戏的 django 模型级别。
class Level(models.Model):
key = models.CharField(max_length=100)
description = models.CharField(max_length=500)
requiredPoints = models.IntegerField()
badgeurl = models.CharField(max_length=100)
challenge = models.ForeignKey(Challenge)
我现在想查询 pointsRequired 值小于给定值的最高级别。
如果我有:
级别 1: requiredPoints: 200 Level 2: requiredPoints: 800 Level 3: requiredPoints: 2000
当我输入例如 900 或 1999 作为查询参数时,我希望返回级别 2,当输入 10000 时它应该是级别 3。
在 sql 它看起来像
select pointsRequired,
abs(pointsRequired - parameter) as closest
from the_table
order by closest
limit 1
有小费吗?我必须使用额外的 Query-Set吗?它会是什么样子