python - Django ORM - 找到变量适合一系列模型字段的对象?

标签 python django orm

我正在尝试使用整数变量查找所有 Django 对象,其中该变量位于两个 Django 模型字段之间。我知道使用 __range() 通常是为了查找模型字段是否在两个变量之间,但我需要相反的方式。

模型:

class Location(models.Model):

     location_start = models.IntegerField()
     location_end = models.IntegerField()
     sample_id = models.ForeignKey(Sample,
            on_delete=models.CASCADE, db_column='sample_id')

View (不起作用):

location_query = 1276112

loc_obj = Location.objects.filter(
              sample_id=sample_obj,
              location_query__range(location_start, location_end)

    )

原始 SQL:

SELECT *
 FROM location
 WHERE sample_id=12 
 AND 1276112 BETWEEN location_start AND location_end

有没有更简单的方法来做到这一点而无需循环遍历对象?

最佳答案

如果我对你的理解是正确的,你想过滤所有 Location带有 obj.location_start < location_query < obj.location_end 的对象.过滤语句看起来像这样:

loc_obj = Location.objects.filter(
              sample_id=sample_obj,
              location_start__lt=location_query,
              location_end__gt=location_query)

          )

如果您想要一个包含范围 ( <= ),请使用 location_start__ltelocation_end__gt=location_query .

关于python - Django ORM - 找到变量适合一系列模型字段的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54289134/

相关文章:

python - 无法使用 pip 安装 Pandas

python - 如何在私有(private)发布服务器上发布?

python - 使用 pandas 查找每日平均值

python - Django 1.3 支持哪些多语言数据库?

Python:如何从字符串中提取所需信息?

python - Django 如何制作数据透视表?

python - Django get_or_create 返回 False

php - 找不到字段 "image"的映射 vichupolader symfony2

java - 如何映射一个仅供 HQL 使用的属性(在 Hibernate 中)?

javascript - Bookshelf.js/Knex.js 嵌套在单个查询中的位置