def __init__(self, *args, **kwargs): super(SpatialQueryForm, self).__init__(*args, **kwargs) for lookup in self.data: if lookup in gis_lookups: self.fields[lookup] = fields.GeometryField( required=False, widget=forms.BaseGeometryWidget()) break
def test_subwidgets(self): widget = forms.BaseGeometryWidget() self.assertEqual(list(widget.subwidgets('name', 'value')), [{ 'is_hidden': False, 'attrs': { 'map_srid': 4326, 'map_width': 600, 'geom_type': 'GEOMETRY', 'map_height': 400, 'display_raw': False, }, 'name': 'name', 'template_name': '', 'value': 'value', 'required': False, }])
def to_internal_value(self, data): # forms.GeometryField cannot handle geojson dicts. if isinstance(data, collections.Mapping): data = json.dumps(data) field = fields.GeometryField(widget=forms.BaseGeometryWidget()) return field.to_python(data)