首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django TastyPie地理距离查找

Django TastyPie地理距离查找
EN

Stack Overflow用户
提问于 2012-09-05 18:18:07
回答 1查看 684关注 0票数 3

我正在使用TastyPie进行地理距离查找。这有点困难,因为TastyPie通常不支持它。在Github (https://gist.github.com/1067176)上,我找到了以下代码示例:

代码语言:javascript
复制
 def apply_sorting(self, objects, options=None):
     if options and "longitude" in options and "latitude" in options:
         return objects.distance(Point(float(options['latitude']), float(options['longitude']))).order_by('distance')

     return super(UserLocationResource, self).apply_sorting(objects, options)

它工作得很好,但现在我希望在TastyPie中将距离作为字段结果。你知道怎么做吗?仅仅在field属性中包含"distance“是行不通的。

提前感谢您的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-05 19:35:51

meta属性中定义的字段不足以返回附加值。它们需要定义为资源中的附加字段:

代码语言:javascript
复制
distance = fields.CharField(attribute="distance", default=0, readonly=True)

可以通过在资源内定义dehydrate_distance方法来填充此值

代码语言:javascript
复制
def dehydrate_distance(self, bundle):
    # your code here

或者在资源元中的queryset中添加一些额外的元素,如下所示:

代码语言:javascript
复制
queryset = YourModel.objects.extra(select={'distance': 'SELECT foo FROM bar'})

Tastypie本身附加了一个名为resource_uri的字段,这个字段实际上并不存在于查询集中,查看一下tastypie资源的源代码可能也会对您有所帮助。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12279221

复制
相关文章

相似问题

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