add cache_key to ChangeSet

This commit is contained in:
Laura Klünder 2017-06-15 17:53:00 +02:00
parent 52404c1cf1
commit a6d117d490

View file

@ -36,6 +36,7 @@ class ChangeSet(models.Model):
self.deleted_existing = {}
self.m2m_add_existing = {}
self.m2m_remove_existing = {}
self._last_change_pk = 0
def parse_changes(self):
if self.parsed:
@ -45,6 +46,8 @@ class ChangeSet(models.Model):
self.parsed = True
def _parse_change(self, change):
self._last_change_pk = change.pk
if change.action == 'delchange':
raise NotImplementedError
@ -86,8 +89,12 @@ class ChangeSet(models.Model):
self.m2m_remove_existing.setdefault(model, {}).setdefault(change.obj_pk, set()).add(value)
def get_changed_values(self, model, name):
return tuple((pk, values[name])
for pk, values in self.updated_existing.get(model, {}).items() if name in values)
r = tuple((pk, values[name]) for pk, values in self.updated_existing.get(model, {}).items() if name in values)
return r
@property
def cache_key(self):
return str(self.pk)+'-'+str(self._last_change_pk)
@classmethod
def qs_base(cls, hide_applied=True):