Django:在两个值

时间:2015-10-13 14:08:23

标签: python django

我正在努力解决到目前为止我无法解决的Django过滤问题。我有一个带有from / to整数的数据库,我需要一个Django Filter来返回给定整数在该范围内的任何对象。

我有以下模型(简化):

class Dataset(models.Model):
    i_begin_int = models.BigIntegerField()
    i_end_int = models.BigIntegerField()

例如,我有以下数据:

+----+-------------+-----------+
| id | i_begin_int | i_end_int |
+----+-------------+-----------+
|  1 |         100 |       200 |
+----+-------------+-----------+
|  2 |         150 |       300 |
+----+-------------+-----------+
|  3 |        7000 |      7500 |
+----+-------------+-----------+

所以现在我有一个整数,比方说,170。我需要170 {介于i_begin_inti_end_int之间的所有对象。在示例表中,这将是id为1和2的对象。

我可以使用Django过滤器吗?

2 个答案:

答案 0 :(得分:13)

试试这个;

x = 170
Dataset.objects.filter(i_end_int__gte=x,i_begin_int__lte=x)

其中; gte =大于等于 lte =小于等于

答案 1 :(得分:2)

Dataset.objects.filter(i_begin_int__lte=170, i_end_int__gte=170)

过滤i_begin_int小于170并且i_end_int值大于170的位置。

SQL等价物:SELECT * FROM appname_dataset WHERE i_begin_int <= 170 AND i_end_int >= 170