首页 > 解决方案 > 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')

意见(不起作用):

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

有没有更简单的方法可以在不循环对象的情况下做到这一点?

标签: pythondjangoorm

解决方案


这个怎么样(使用gtelte):

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

推荐阅读