ゲームの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: 必須ポイント: 200 レベル 2: 必須ポイント: 800 レベル 3: 必須ポイント: 2000
たとえば、クエリ パラメーターとして 900 または 1999 を入力するとレベル 2 が返され、10000 を入力するとレベル 3 が返されます。
SQLでは次のようになります
select pointsRequired,
abs(pointsRequired - parameter) as closest
from the_table
order by closest
limit 1
任意のヒント?追加の Query-Setを使用する必要がありますか? どのように見えるでしょうか