问题标签 [django-rest-framework-gis]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
django-rest-framework - 使用 django rest 框架 gis 降低多多边形字段的精度
我正在使用 django rest gis 加载传单地图,在我的应用程序的顶层,我正在查看世界地图。底图来自 Mapbox。我调用我的 rest-api 并返回应用程序中包含的所有单个国家的概要。目前,返回的 GeoJSON 文件大小为 1.1MB,我有更多国家要添加,所以我想减小大小以提高性能。
以下是内容示例:
文件的大小是点数和这些点精度的函数。我在想,在保留原始数据的同时减小尺寸的最便捷方法是降低几何点的精度。但是,我对如何做到这一点有点茫然。我浏览了github上的文档,没有找到任何线索。
是否有降低返回 GeoJSON 精度的字段选项?或者,有没有另一种方法来实现我想要做的事情?
非常感谢。
python - restframework 'tuple' 对象没有属性 '_meta'
Django 抛出下一个异常:
restframework 'tuple' 对象没有属性 '_meta'
模型
看法
网址
序列化器
环境:
请求方法:GET 请求地址:http ://apiix.verinmuebles.dev/v1/bdetail/
追溯:
内部 39 中的文件“/var/www/verinmuebles/current/Env/api/local/lib/python2.7/site-packages/django/core/handlers/exception.py”。 response = get_response(request)
_get_response 187 中的文件“/var/www/verinmuebles/current/Env/api/local/lib/python2.7/site-packages/django/core/handlers/base.py”。响应 = self.process_exception_by_middleware(e,请求)
_get_response 185 中的文件“/var/www/verinmuebles/current/Env/api/local/lib/python2.7/site-packages/django/core/handlers/base.py”。 response = Wrapped_callback(request, *callback_args, **callback_kwargs)
Wrapped_view 中的文件“/var/www/verinmuebles/current/Env/api/local/lib/python2.7/site-packages/django/views/decorators/csrf.py” 58. return view_func(*args, **kwargs )
视图 87 中的文件“/var/www/verinmuebles/current/Env/api/local/lib/python2.7/site-packages/rest_framework/viewsets.py”。 return self.dispatch(request, *args, **kwargs )
调度 474 中的文件“/var/www/verinmuebles/current/Env/api/local/lib/python2.7/site-packages/rest_framework/views.py”。响应 = self.handle_exception(exc)
handle_exception 434 中的文件“/var/www/verinmuebles/current/Env/api/local/lib/python2.7/site-packages/rest_framework/views.py”。self.raise_uncaught_exception(exc)
调度 471 中的文件“/var/www/verinmuebles/current/Env/api/local/lib/python2.7/site-packages/rest_framework/views.py”。 response = handler(request, *args, **kwargs)
列表 45 中的文件“/var/www/verinmuebles/current/Env/api/local/lib/python2.7/site-packages/rest_framework/mixins.py”。返回 self.get_paginated_response(serializer.data)
数据 701 中的文件“/var/www/verinmuebles/current/Env/api/local/lib/python2.7/site-packages/rest_framework/serializers.py”。 ret = super(ListSerializer, self).data
数据 240 中的文件“/var/www/verinmuebles/current/Env/api/local/lib/python2.7/site-packages/rest_framework/serializers.py”。self._data = self.to_representation(self.instance)
to_representation 619 中的文件“/var/www/verinmuebles/current/Env/api/local/lib/python2.7/site-packages/rest_framework/serializers.py”.self.child.to_representation(item) 用于可迭代中的项目
to_representation 460 中的文件“/var/www/verinmuebles/current/Env/api/local/lib/python2.7/site-packages/rest_framework/serializers.py”。fields = self._readable_fields
获取35中的文件“/var/www/verinmuebles/current/Env/api/local/lib/python2.7/site-packages/django/utils/functional.py” 。 res = instance. dict [self.name] = self.func(instance)
_readable_fields 354 中的文件“/var/www/verinmuebles/current/Env/api/local/lib/python2.7/site-packages/rest_framework/serializers.py”。 self.fields.values() 中的字段
字段 340 中的文件“/var/www/verinmuebles/current/Env/api/local/lib/python2.7/site-packages/rest_framework/serializers.py”。对于 self.get_fields().items( ):
get_fields 946 中的文件“/var/www/verinmuebles/current/Env/api/local/lib/python2.7/site-packages/rest_framework/serializers.py”。 info = model_meta.get_field_info(model)
get_field_info 36 中的文件“/var/www/verinmuebles/current/Env/api/local/lib/python2.7/site-packages/rest_framework/utils/model_meta.py”。 opts = model._meta.concrete_model._meta
异常类型:/v1/bdetail/ 处的 AttributeError 异常值:“元组”对象没有属性“_meta”
python - rest framework 'user_code' 是此函数的无效关键字参数请求方法:POST 请求
我正在尝试在同一端点保存 BDetail 时创建一个新的 BCode,但是当我测试时,抛出框架“user_code”是此函数请求方法的无效关键字参数:POST 请求。
BCodes 模型
B详细模型
BCodes 序列化程序
BDetail序列化器
模型视图
追溯:
原始请求
django - 使用 GeoFeatureModelSerializer 和 ListCreateAPIView 的 POST 请求需要字段
很难为这个线程找到一个好的标题。我正在使用 django、geodjango (postgis)、django-rest-framework 和 rest_framework_gis 开发 Web 服务。这些网络服务将用于交互式地图。
我的模型之一如下:
该模型的序列化器:
和端点
当我使用以下 curl 请求时:
我明白了{"fk_owner":["This field is required."],"external_id":["This field is required."],"coordinates":["This field is required."],"func_type":["This field is required."]}
但是,当我用一个简单的 ModelSerializer 替换 GeoFeatureModelSerializer 时,一切都很好。为什么 ?
我花了大约 1 个小时才找到有罪的人,我的一天工作很快就结束了。任何帮助将不胜感激!谢谢,很抱歉这么长的帖子。
[编辑 10/11]:我的解决方法是使用 2 个序列化程序:一个用于 GET,一个用于 CREATE 类 PolygonList(generics.ListCreateAPIView): queryset = Point.objects.all() filter_backends = (drfg_filters.InBBoxFilter,)
python - 带有 GeometryFilter 的 DRF ListView
我正在编写一个 API,它应该返回其几何与给定几何相交的所有对象(EWKT 或 WKT 格式,待定义)。我正在尝试使用django-rest-framework-gis.filters
但到目前为止还没有工作。
我尝试过的:
模型.py:
序列化程序.py:
视图.py:
过滤器.py:
现在,当调用我的网址时:(
http://localhost:8000/geodata/?geometry='LINESTRING (...)'
在 srid 3857 中也使用几何图形),我总是得到空结果(即使对于几何图形,我也确信它们确实与GeoData
对象有交集)。
我误解了什么?
配置:
Django==1.9.10
django-filter==0.15.2
djangorestframework==3.4.7
djangorestframework-gis==0.10.1
python - Django - 以 geoJSON 格式获取多边形的质心
我正在构建一个 REST API 来管理与地理相关的数据。
我的前端开发人员希望根据缩放级别以geoJSON
格式检索多边形的质心。
我的多边形模型如下:
API 当前返回如下内容:
我rest_framework_gis.serializers.GeoFeatureModelSerializer
用来序列化我的数据。
我看到以下获取质心的方法:
- 向我的模型添加列质心:我不想这样做
- 创建我的模型的数据库视图:Django 不管理数据库视图,我不想编写自定义迁移
使用相同的模型并在
/li>extra(...)
我的 orm 语句中添加一个:我尝试过,但在序列化之前或之前事情变得很困难,因为在模型中类型是Polygon
,而质心是Point
. 错误如下:
预期的输出应该是:
你有什么意见 ?
django - 如何在 django-admin 页面中查看应用程序和地理数据以及在 django 页面中查看地图(多边形)的工具是什么?
我必须使用哪个工具PolygonField
在页面中显示我的数据django-admin
?以及如何查看应用程序django-admin
?
android - 无法在 android 中配置 haystack-elasticsearch 进行搜索
我从这个 [tutorial][1] 开始,但我无法理解如何设置它以在 android 应用程序中进行搜索。到目前为止,我已经使用 django REST 框架制作了一个模型,然后在 android 中使用改造来制作和GET
请求。PUT
POST
现在我想按名称搜索我的产品。
上面的教程试图创建搜索 HTML 页面并在该 HTML 页面中键入查询,但我想要一个可以发送GET
搜索请求的端点。
请帮助我了解如何做到这一点。
现在我应该如何使用这个ItemIndex来使用 haystack 创建搜索 url。[1]:http ://django-haystack.readthedocs.io/en/v2.6.0/tutorial.html
django - 如何使用 django-rest-framework-(gis) 展平外键对象
我已经搜索了很长时间,以寻找一个最新的和特定于我的问题的解决方案,但还没有找到解决方案或明确的文档,说明我真正需要做什么才能使关系扁平化以符合 geojson 标准。
这个问题与我的几乎相同,但是解决方案或答案并不能解决问题,并且仍然会产生无效的 GeoJSON。
有关的
问题
我有一个包含 SRID=4326的Location
模型。pointfield
我还有一个TrainStation
模型,它location
的外键为Location
. 当我TrainStation
通过GeoFeatureModelSerializer
它序列化它时,它会产生无效的 GeoJSON(参见下面的示例“无效的 geojson”)。
(当然,如果我将其存储PointField
在TrainStation
模型中的哪个位置,则可以获得有效的 GeoJSON,但在我的情况下,我不能这样做,所以我需要以某种方式将其展平。)
问题
- 如何实现像下面的“Valid GeoJSON”示例这样的输出?
研究
我是 Python 和 Django 的新手,因此我还不太擅长阅读其他人的源代码,但是我认为我可以得出结论,我需要以某种方式覆盖该to_representation()
方法以获得我想要的东西,但我的搜索是如此远没有结果,所以我被困住了。
模型.py
序列化程序.py
GeoJSON 输出示例:
我已经验证了http://geojson.io上的输出以确定它是否有效。
无效的 GeoJSON
有效的 GeoJSON
这是我正在寻找的输出。
django - 如何在 Django Rest Framework 中使用 MultiPartParser
我需要上传一个文件和一些与之关联的 JSON。但我不明白如何保存不同的部分,特别是 JSON 部分,即我能够保存图像但不能保存 JSON。
我读到我需要使用 MultiPartParser,但我不知道如何将它正确集成到我的序列化程序类中。
这是我的服务器收到的多部分请求:
这是视图:
这是序列化程序:
这是模型:
谁能告诉我如何point
正确序列化该字段?也许我需要更改 JSON 格式?也许我需要更改序列化程序?