get_changed_object: instance as argument instead of model and pk
This commit is contained in:
parent
eaab9ba670
commit
15e0b3cad2
2 changed files with 6 additions and 4 deletions
|
@ -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)
|
||||
|
||||
|
|
|
@ -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):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue