diff --git a/CHANGES b/CHANGES index 06011b71..97362202 100644 --- a/CHANGES +++ b/CHANGES @@ -7,6 +7,7 @@ CHANGELOG * Renamed Leaflet map fragment template * Leaflet map geometry widgets for adminsite and forms (requires Django 1.6) +* Fix geometry type restriction in form fields (fixes #32) 0.7.4 (2013-08-28) ------------------ diff --git a/leaflet/forms/fields.py b/leaflet/forms/fields.py index 4b7da464..573896bc 100644 --- a/leaflet/forms/fields.py +++ b/leaflet/forms/fields.py @@ -11,7 +11,6 @@ class GeometryField(BaseField): # noqa def __init__(self, *args, **kwargs): kwargs['geom_type'] = self.geom_type super(GeometryField, self).__init__(*args, **kwargs) - self.widget.attrs['geom_type'] = self.geom_type from .widgets import LeafletWidget @@ -21,6 +20,10 @@ class LeafletGeometryField(GeometryField): widget = LeafletWidget geom_type = 'GEOMETRY' + def __init__(self, *args, **kwargs): + super(LeafletGeometryField, self).__init__(*args, **kwargs) + self.widget.geom_type = self.geom_type + class GeometryCollectionField(LeafletGeometryField): geom_type = 'GEOMETRYCOLLECTION' diff --git a/leaflet/tests.py b/leaflet/tests.py index 7dc90919..67228de4 100644 --- a/leaflet/tests.py +++ b/leaflet/tests.py @@ -82,7 +82,7 @@ def test_default_widget(self): for typ in ['Geometry', 'Point', 'MultiPoint', 'LineString', 'Polygon', 'MultiLineString', 'MultiPolygon', 'GeometryCollection']: f = getattr(fields, typ + 'Field')() - self.assertEquals(f.widget.attrs['geom_type'], typ.upper()) + self.assertEquals(f.widget.geom_type, typ.upper()) class DummyModel(gismodels.Model):