gpt4 book ai didi

django - 通过管理小部件将不正确的经度/纬度保存到 PointField

转载 作者:行者123 更新时间:2023-12-05 06:33:43 25 4
gpt4 key购买 nike

我有一个基本的 GeoDjango PointField:

point = models.PointField(srid=4326, null=True)

使用管理员时,我希望将其保存在数据库中(例如,伦敦):

SRID=4326;POINT (-94.577597, 39.057294)

但是,如果我将标记放在伦敦,我会得到:

SRID=4326;POINT (-19067.91721243037 6711435.410105047)

经度/纬度偏离的地方。

我已经尝试手动将 Point 设置为位置:

obj.point = Point(-94.577597, 39.057294)
obj.save()

但是这个小部件然后被渲染得很远。

所以似乎是错误的纬度和经度被保存到字段中,或者使用了错误的坐标系。

我尝试手动覆盖小部件以确保在小部件上使用正确的 SRID:

class Meta:
model = models.MyModel
fields = "__all__"
widgets = {
'point': widgets.OSMWidget(attrs={
'map_srid': 4326,
'map_width': 800,
'map_height': 500,
'display_raw': True
})
}

但没有运气。

我安装了 GeoDjango 的所有依赖项,我在我的数据库上启用了 postgis 扩展,并且我使用了正确的引擎:

DATABASES['default']['ENGINE'] = 'django.contrib.gis.db.backends.postgis'

我还添加了 django.contrib.gisINSTALLED_APPS。我使用的是默认表单小部件,但我想知道小部件可能是问题所在吗?

最佳答案

好吧,我好像忘了包含正确的 GeoDjango Admin 类:

from django.contrib.gis import admin
from app import models

@admin.register(models.MyModel)
class MyAdmin(admin.OSMGeoAdmin):
pass

关于django - 通过管理小部件将不正确的经度/纬度保存到 PointField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50609917/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com