123456789101112131415161718192021 |
- from django.contrib.admin import ModelAdmin
- from django.contrib.gis.db import models
- from django.contrib.gis.forms import OSMWidget
- class GeoModelAdminMixin:
- gis_widget = OSMWidget
- gis_widget_kwargs = {}
- def formfield_for_dbfield(self, db_field, request, **kwargs):
- if isinstance(db_field, models.GeometryField) and (
- db_field.dim < 3 or self.gis_widget.supports_3d
- ):
- kwargs["widget"] = self.gis_widget(**self.gis_widget_kwargs)
- return db_field.formfield(**kwargs)
- else:
- return super().formfield_for_dbfield(db_field, request, **kwargs)
- class GISModelAdmin(GeoModelAdminMixin, ModelAdmin):
- pass
|