#PointField
In a world made of dots, "solid" is just an opinion. Maybe she's 4D printed.

"The whole is greater than the sum of its parts."
— Aristotle

#MetamorphoseMagic #TheArtEclectic #BodyOfParticles #AtomicReality #PointField #DataArchitect #DigitalAnatomy #StructuredAbstraction
April 22, 2026 at 10:34 AM
Feed: "JoeHx Blog"
By: JoeHx on Wednesday, January 29, 2025
Fixing the OSMWidget in Django Admin
I was setting up an admin for someDjangomodels that had a PointField the other day, and I ran into an issue that took a little digging to figure out.
www.joehxblog.com
January 30, 2025 at 12:11 AM
How to set default_lon, default_lat for admin page using GISModelAdmin
How do you set default_lon, default_lat, and default_zoom for a PointField in the django admin page using GISModelAdmin class? With the following code the admin page loads correctly, but with the default location in Europe. model.py from django.contrib.gis.db import models class Enclosure(models.Model): location = models.PointField() name = models.CharField(max_length=15) admin.py from .models import Enclosure @admin.register(Enclosure) class EnclocusreAdmin(GISModelAdmin): pass I've tried the following code to try to set default lat, lon for the widget. However doing this results in no map displayed for the PointField on the admin page. admin.py from .models import Enclosure @admin.register(Enclosuer) class EnclosureAdmin(GISModelAdmin): gis_widget_kwargs = {'attrs': { 'default_lon': 50, 'default_lat': 100,}} The relevant Django code is class GISModelAdmin(GeoModelAdminMixin, ModelAdmin): pass 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 OSMWidget(OpenLayersWidget): """ An OpenLayers/OpenStreetMap-based widget. """ template_name = 'gis/openlayers-osm.html' default_lon = 5 default_lat = 47 default_zoom = 12 def __init__(self, attrs=None): super().__init__() for key in ('default_lon', 'default_lat', 'default_zoom'): self.attrs[key] = getattr(self, key) if attrs: self.attrs.update(attrs)
gis.stackexchange.com
June 15, 2026 at 7:09 AM
How to set default_lon, default_lat for admin page using GISModelAdmin
How do you set default_lon, default_lat, and default_zoom for a PointField in the django admin page using GISModelAdmin class? With the following code the admin page loads correctly, but with the default location in Europe. model.py from django.contrib.gis.db import models class Enclosure(models.Model): location = models.PointField() name = models.CharField(max_length=15) admin.py from .models import Enclosure @admin.register(Enclosure) class EnclocusreAdmin(GISModelAdmin): pass I've tried the following code to try to set default lat, lon for the widget. However doing this results in no map displayed for the PointField on the admin page. admin.py from .models import Enclosure @admin.register(Enclosuer) class EnclosureAdmin(GISModelAdmin): gis_widget_kwargs = {'attrs': { 'default_lon': 50, 'default_lat': 100,}} The relevant Django code is class GISModelAdmin(GeoModelAdminMixin, ModelAdmin): pass 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 OSMWidget(OpenLayersWidget): """ An OpenLayers/OpenStreetMap-based widget. """ template_name = 'gis/openlayers-osm.html' default_lon = 5 default_lat = 47 default_zoom = 12 def __init__(self, attrs=None): super().__init__() for key in ('default_lon', 'default_lat', 'default_zoom'): self.attrs[key] = getattr(self, key) if attrs: self.attrs.update(attrs)
gis.stackexchange.com
February 14, 2026 at 2:04 AM
How to set default_lon, default_lat for admin page using GISModelAdmin
How do you set default_lon, default_lat, and default_zoom for a PointField in the django admin page using GISModelAdmin class? With the following code the admin page loads correctly, but with the default location in Europe. model.py from django.contrib.gis.db import models class Enclosure(models.Model): location = models.PointField() name = models.CharField(max_length=15) admin.py from .models import Enclosure @admin.register(Enclosure) class EnclocusreAdmin(GISModelAdmin): pass I've tried the following code to try to set default lat, lon for the widget. However doing this results in no map displayed for the PointField on the admin page. admin.py from .models import Enclosure @admin.register(Enclosuer) class EnclosureAdmin(GISModelAdmin): gis_widget_kwargs = {'attrs': { 'default_lon': 50, 'default_lat': 100,}} The relevant Django code is class GISModelAdmin(GeoModelAdminMixin, ModelAdmin): pass 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 OSMWidget(OpenLayersWidget): """ An OpenLayers/OpenStreetMap-based widget. """ template_name = 'gis/openlayers-osm.html' default_lon = 5 default_lat = 47 default_zoom = 12 def __init__(self, attrs=None): super().__init__() for key in ('default_lon', 'default_lat', 'default_zoom'): self.attrs[key] = getattr(self, key) if attrs: self.attrs.update(attrs)
gis.stackexchange.com
October 16, 2025 at 5:05 AM
How to set default_lon, default_lat for admin page using GISModelAdmin
How do you set default_lon, default_lat, and default_zoom for a PointField in the django admin page using GISModelAdmin class? With the following code the admin page loads correctly, but with the default location in Europe. model.py from django.contrib.gis.db import models class Enclosure(models.Model): location = models.PointField() name = models.CharField(max_length=15) admin.py from .models import Enclosure @admin.register(Enclosure) class EnclocusreAdmin(GISModelAdmin): pass I've tried the following code to try to set default lat, lon for the widget. However doing this results in no map displayed for the PointField on the admin page. admin.py from .models import Enclosure @admin.register(Enclosuer) class EnclosureAdmin(GISModelAdmin): gis_widget_kwargs = {'attrs': { 'default_lon': 50, 'default_lat': 100,}} The relevant Django code is class GISModelAdmin(GeoModelAdminMixin, ModelAdmin): pass 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 OSMWidget(OpenLayersWidget): """ An OpenLayers/OpenStreetMap-based widget. """ template_name = 'gis/openlayers-osm.html' default_lon = 5 default_lat = 47 default_zoom = 12 def __init__(self, attrs=None): super().__init__() for key in ('default_lon', 'default_lat', 'default_zoom'): self.attrs[key] = getattr(self, key) if attrs: self.attrs.update(attrs)
gis.stackexchange.com
June 13, 2025 at 6:06 PM