Django:按两个值之间的整数筛选对象

2024-06-25 23:26:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在和一个到目前为止还不能解决的Django过滤问题作斗争。我有一个包含from/to整数的数据库,我需要一个Django过滤器,它返回给定整数在该范围内的任何对象。

我有以下模型(简化版):

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过滤器吗?


Tags: to对象djangofrom模型id数据库过滤器
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

试试这个

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

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

相关问题 更多 >