Послесловие: Как переопределить виджет карты в 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?