get_changed_geometry(): operate on cleaned geometry

This commit is contained in:
Laura Klünder 2017-11-16 19:55:23 +01:00
parent 00df96cbe0
commit c754f046ee

View file

@ -118,9 +118,12 @@ class GeometryMixin(SerializableMixin):
return False
def get_changed_geometry(self):
field = self._meta.get_field('geometry')
new_geometry = self.geometry
new_geometry = field.to_python(field.get_prep_value(new_geometry))
if self.orig_geometry is None:
return self.geometry
difference = self.geometry.symmetric_difference(self.orig_geometry)
return new_geometry
difference = new_geometry.symmetric_difference(self.orig_geometry)
if self._meta.get_field('geometry').geomtype in ('polygon', 'multipolygon'):
difference = unary_union(assert_multipolygon(difference))
return difference