GeoDjango Admin отображает карту openlayers вместо открытой карты улиц в Admin
я включил все необходимое для работы с пространственными данными на уровне настроек базы данных и django, моя модель профиля имеет поле default_location, которое является PointField. как показано ниже.
from django.contrib.gis import models
class Profile(models.Model):
...
default_location = models.PointField()
я зарегистрировал модель профиля как встроенную для просмотра и редактирования из модели пользователя (отношение один к одному между пользователем и профилем). код показан ниже
class ProfileInline(StackedInline):
model = models.Profile
class NewUserAdmin(admin.GISModelAdmin):
gis_widget = OSMWidget
inlines = [ProfileInline]
admin.site.unregister(models.User)
admin.site.register(models.User, NewUserAdmin)
однако я продолжаю получать карту openlayer на моей странице администратора django
пожалуйста, кто-нибудь может предложить исправить это. Мне нужна открытая карта улиц из-за ее подробной характеристики улиц.
1 ответ
Вы можете использовать
django-leaflet
упаковка. По умолчанию отображается OpenStreetMap, а также улучшенные инструменты и интерфейс.
После установки нужно добавить
leaflet
к
INSTALLED_APPS
в настройках.py.
Затем вы используете
LeafletGeoAdmin
в вашем ModelAdmin в admin.py.
Вы можете добавить некоторые настройки, добавив это в свой settings.py:
LEAFLET_CONFIG = {
'DEFAULT_CENTER': (39.694819, -8.130229),
'DEFAULT_ZOOM': 6,
'MAX_ZOOM': 20,
'MIN_ZOOM':3,
'SCALE': 'both'
}
Более подробная информация здесь: https://django-leaflet.readthedocs.io/