У меня есть базовое 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.gis
к INSTALLED_APPS
.Я использую виджет формы по умолчанию, но мне интересно, может ли быть проблема с виджетом?