首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GeoDjango距离查询ForeignKey

GeoDjango距离查询ForeignKey
EN

Stack Overflow用户
提问于 2015-02-17 06:51:53
回答 2查看 152关注 0票数 0

我有一个geCoded地址模型,还有一个用户模型,地址是foreignKey。通过使用以下方法,我可以轻松地在地址模型中执行距离计算

代码语言:javascript
复制
Address.objects.filter(geoCoords__distance_lt=(address1.geoCoords, D(mi=23)))

地址模式:

代码语言:javascript
复制
class Address(models.Model):

   streetAddress1 = models.CharField(blank=False, null=False, max_length=300)
   city = models.CharField(null=False, blank=False,  max_length=50)
   state = USStateField(choices = US_STATES, blank=False, null=False,)
   zip5 = models.CharField(blank=False, null=False, max_length=5, )
   zip4 = models.CharField(blank=True, null=True, max_length=4, )
   geoCoords = models.PointField(null=False, blank=False, srid=4326)
   objects = models.GeoManager()

用户模型:

代码语言:javascript
复制
class TestUsers
   ...
   location = models.ForeignKey(Address, null=True, blank=True)
   ...

我想要执行一个查询,使所有TestUsers都在pointField的一定距离内。任何帮助都是非常感谢的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-17 08:17:27

试试这个:

代码语言:javascript
复制
TestUsers.objects.filter(location__geoCoords__distance_lt=(address1, D(mi=23)))
票数 1
EN

Stack Overflow用户

发布于 2015-02-17 20:54:48

需要将以下内容添加到使用地址作为ForeignKey的模型中

代码语言:javascript
复制
objects = models.GeoManager() 

一旦完成,以下查询将正确解析:

代码语言:javascript
复制
TestUsers.objects.filter(location__geoCoords__distance_lte=(caddr.geoCoords, D(mi=21)))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28556258

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档