Послесловие: Как переопределить виджет карты в Django Admin, в котором данные Geom загружаются через LayerMapping?

Этот вопрос является продолжением моего первоначального запроса о динамическом изменении цвета слоев шейп-файла на карте Django Admin Leaflet.

В моем проекте GeoDjango я загружаю геометрические данные с помощью метода LayerMapping. Ниже приведен файл load.py, который я использую для этого:

from django.contrib.gis.utils import LayerMapping
from .models import Municipality

municipality_mapping = {
    'reg_code': 'Reg_Code',
    'reg_name': 'Reg_Name',
    'pro_name': 'Pro_Name',
    'mun_code': 'Mun_Code',
    'mun_name': 'Mun_Name',
    'mean_ctrl': 'mean_ctrl',
    'geom': 'MULTIPOLYGON',
}

zonalmeanctrl_shp = "path/to/shapefile.shp" 

def run(verbose=True):
    lm = LayerMapping(Municipality, zonalmeanctrl_shp, municipality_mapping, transform=False) 
    lm.save(strict=True, verbose=verbose)

В файле admin.py я настроил панель администратора с помощью LeafletGeoAdmin:

from django.contrib import admin
from .models import Municipality
from leaflet.admin import LeafletGeoAdmin

class MunicipalityAdmin(LeafletGeoAdmin):
    list_display = ('pro_name', 'reg_code', 'reg_name', 'mun_code', 'mun_name', 'mean_ctrl')

admin.site.register(Municipality, MunicipalityAdmin)

Теперь я хочу пойти дальше и настроить виджет карты на динамическое изменение стиля геометрии на основе определенных атрибутов (например, изменить цвет на основе значения mean_ctrl). Как я могу переопределить виджет карты в Django Admin, чтобы применить динамические цвета к этим шейп-файлам, загруженным через LayerMapping?

Вернуться на верх