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/

Другие вопросы по тегам