def get_field_diff(self, field_name):
return self.diff.get(field_name, None)
+ def can_update(self, user):
+ if user.is_readonly:
+ return False
+ if user.is_admin:
+ return True
+ return False
+
def delete(self, *args, **kwds):
# so we have something to give the observer
pk = self.pk
self.__initial = self._dict
+ def save_by_user(self, user, *args, **kwds):
+ if self.can_update(user):
+ self.save(*args, **kwds)
+
@property
def _dict(self):
return model_to_dict(self, fields=[field.name for field in