Django Rest Framework - 如何限制Geolocation返回的结果?

jwv*_*jwv 7 python django geolocation django-rest-framework

我有一个存储用户位置的模型:

[
{
    "url": "http://192.168.0.22:8000/status/1/",
    "id": 1,
    "owner": 1,
    "test_info": "",
    "created_at": "2015-05-02T07:09:16.535689Z",
    "updated_at": "2015-05-02T07:09:16.535746Z",
    "geolocation": null,
    "jukebox_mode_enabled": false
},
{
    "url": "http://192.168.0.22:8000/status/2/",
    "id": 2,
    "owner": 2,
    "test_info": "",
    "created_at": "2015-05-02T07:09:24.206959Z",
    "updated_at": "2015-05-02T07:09:24.207042Z",
    "geolocation": null,
    "jukebox_mode_enabled": false
},
Run Code Online (Sandbox Code Playgroud)

我正在尝试实现一个允许用户查询并查看附近还有谁的系统,但出于安全考虑,我想将结果限制为1KM的用户.

实现这一目标的最佳方法是什么?

PS - 使用oneToOneField将"状态"绑定到django模型中的普通用户模型.

Dwi*_*ing 2

您正在寻找的是通过地理位置查询/过滤的能力。看看GeoDjango

一旦您可以在地理范围内运行模型 filter() ,那么只需使用 django-rest-framework 将其应用到您的 APIView 即可。