我正在努力解决到目前为止我无法解决的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_int
和i_end_int
之间的所有对象。在示例表中,这将是id为1和2的对象。
我可以使用Django过滤器吗?
答案 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