get_changed_object: instance as argument instead of model and pk

This commit is contained in:
Laura Klünder 2017-06-27 14:57:43 +02:00
parent eaab9ba670
commit 15e0b3cad2
2 changed files with 6 additions and 4 deletions

View file

@ -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)

View file

@ -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):