1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | class MyModel(models.Model):
#Things
def compare(self, obj):
excluded_keys = 'created', '_state', 'timestamp', 'user', 'uid', 'changed' #Example. Modify to your likings.
return self._compare(self, obj, excluded_keys)
def _compare(self, obj1, obj2, excluded_keys):
d1, d2 = obj1.__dict__, obj2.__dict__
old, new = {}, {}
for k,v in d1.items():
if k in excluded_keys:
continue
try:
if v != d2[k]:
old.update({k: v})
new.update({k: d2[k]})
except KeyError:
old.update({k: v})
return old, new
|
More like this
- really_equals by zeeg 6 years ago
- Dump a model instance and related objects as a Python data structure by akaihola 1 year, 3 months ago
- FieldAccessForm (per-field user access for forms derived from models) by Killarny 4 years, 7 months ago
- Run Django as a FastCGI authorizer by cme 4 years, 7 months ago
- Additional Change List Columns by sansmojo 5 years, 10 months ago
Comments