diff --git a/src/c3nav/editor/models/changeset.py b/src/c3nav/editor/models/changeset.py index 598ba72b..889bcbd3 100644 --- a/src/c3nav/editor/models/changeset.py +++ b/src/c3nav/editor/models/changeset.py @@ -188,7 +188,9 @@ class ChangeSet(models.Model): r = tuple((pk, values[name]) for pk, values in self.updated_existing.get(model, {}).items() if name in values) return r - def get_changed_object(self, model, pk=None) -> ChangedObject: + def get_changed_object(self, obj) -> ChangedObject: + model = obj.__class__ + pk = obj.pk if pk is None: return ChangedObject(changeset=self, model_class=model) diff --git a/src/c3nav/editor/wrappers.py b/src/c3nav/editor/wrappers.py index 9d864948..c701fc3e 100644 --- a/src/c3nav/editor/wrappers.py +++ b/src/c3nav/editor/wrappers.py @@ -186,7 +186,7 @@ class ModelInstanceWrapper(BaseWrapper): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) if self._obj.pk is not None: - self._changeset.get_changed_object(self._obj.__class__, self._obj.pk).apply_to_instance(self) + self._changeset.get_changed_object(self._obj).apply_to_instance(self) def __eq__(self, other): if isinstance(other, BaseWrapper): @@ -234,10 +234,10 @@ class ModelInstanceWrapper(BaseWrapper): """ Create changes in changeset instead of saving. """ - self._changeset.get_changed_object(self._obj.__class__, self.pk).save_instance(self) + self._changeset.get_changed_object(self._obj).save_instance(self) def delete(self): - self._changeset.get_changed_object(self._obj.__class__, self.pk).mark_deleted() + self._changeset.get_changed_object(self._obj).mark_deleted() def get_queryset(func):