DJango查询基于两个记录之间的值

时间:2014-12-19 01:33:11

标签: django django-models

我有一个记录表,其中包含名称和值。表格安排如下:

ID CLASS   MINIMUM
1  classA  1
2  classB  6
3  classC  10
4  classD  25

如果给出一个数字,我正在寻找但最接近该数字的记录的ID。 例如,如果我给你5,系统返回1.如果我给你11,系统返回3。

由于

1 个答案:

答案 0 :(得分:1)

这个怎么样?

rand_number = 10 #Or any random number
min_obj = MyModel.objects.filter(minimum__lte=rand_number).order_by('-minimum').first()
id = min_obj.id if min_obj else None

基本上,按降序排序名为minimum(或其他)的列,并获取第一条记录 - 注意first()仅适用于django> = 1.6,并获取ID