Django lte和gte查询产生空查询集

问题描述 投票:1回答:1

我很困惑。我有一个Django查询,应该返回结果,但似乎没有。

我有一个带有邮政编码模型的数据库,该模型具有经纬度数据。

class Postcode(models.Model):

name = models.CharField(max_length=50)
postcode = models.CharField(max_length=7)
latitude = models.DecimalField(max_digits=8, decimal_places=5, blank=True, null=True)
longitude = models.DecimalField(max_digits=8, decimal_places=5, blank=True, null=True)

我想找到具有给定邮政编码100公里的邮政编码,位于:

{'latitude': 1.445671659052796, 'longitude': 1.6673342919117797}

并且我发现纬度和经度范围是:

longitude_max = 1.9703812919117922
longitude_min = -1.3642872919117792
latitude_max = 52.2326886590528
latitude_min = 49.3413453409472

我像这样查询数据库:

return Postcode.objects.filter(latitude__range=(latitude_min, latitude_max), longitude__range=(longitude_min, longitude_max))

但是我什么也没回来吗?我至少应该得到我推断范围的结果!

django-queryset
1个回答
0
投票

如果您使用该坐标的那些参数进行过滤,则查询集将不包含该项目。纬度超出了提供的范围。

© www.soinside.com 2019 - 2024. All rights reserved.