fix _orig_geometry if not set

This commit is contained in:
Laura Klünder 2024-12-05 21:44:55 +01:00
parent 768c92cf0f
commit 1c6d8848a9

View file

@ -106,8 +106,11 @@ class GeometryMixin(SerializableMixin):
@property
def geometry_changed(self):
try:
if self._orig_geometry is None:
return True
except AttributeError:
return True
if self.geometry is self._orig_geometry:
return False
if not self.geometry.equals_exact(unwrap_geom(self._orig_geometry), 0.05):
@ -121,8 +124,11 @@ class GeometryMixin(SerializableMixin):
def get_changed_geometry(self):
field = self._meta.get_field('geometry')
new_geometry = field.get_final_value(self.geometry)
try:
if self._orig_geometry is None:
return new_geometry
except AttributeError:
return new_geometry
difference = new_geometry.symmetric_difference(unwrap_geom(self._orig_geometry))
if self._meta.get_field('geometry').geomtype in ('polygon', 'multipolygon'):
difference = unary_union(assert_multipolygon(difference))