def latest_change(request, *args, **kwargs): view_class = request.resolver_match.func.cls if hasattr(view_class, 'related_model_classes'): related_model_list = [get_model_name_from_obj_or_cls(model_cls) for model_cls in view_class.related_model_classes] else: # use serializer' model class related_model_list = [get_model_name_from_obj_or_cls(view_class.serializer_class.Meta.model)] result = datetime.datetime(1970, 1, 2) if Change.objects.filter(target_class__in=related_model_list).exists(): result = Change.objects.filter( target_class__in=related_model_list).order_by('-id')[0].changeset.committed_on return result
def perform_update(self, serializer): obj = serializer.save() self.object = obj model_name = get_model_name_from_obj_or_cls(obj) self.request.changeset.add(model_name, obj.id, json.dumps(self.origin_obj), json.dumps(obj.export())) del self.origin_obj
def perform_create(self, serializer): obj = serializer.save() self.object = obj if not isinstance(obj, list): obj = [obj] for item in obj: model_name = get_model_name_from_obj_or_cls(item) self.request.changeset.add(model_name, item.id, "null", json.dumps(item.export()))
def perform_create(self, serializer): obj = serializer.save() self.object = obj if not isinstance(obj, list): obj = [obj] for item in obj: model_name = get_model_name_from_obj_or_cls(item) self.request.changeset.add(model_name, item.id, 'null', _dumps_json(item.export()))
def perform_update(self, serializer): obj = serializer.save() self.object = obj model_name = get_model_name_from_obj_or_cls(obj) self.request.changeset.add(model_name, obj.id, _dumps_json(self.origin_obj), _dumps_json(obj.export())) del self.origin_obj
def perform_destroy(self, obj): model_name = get_model_name_from_obj_or_cls(obj) obj_id = obj.id obj_content = json.dumps(obj.export()) super(ChangeSetDestroyModelMixin, self).perform_destroy(obj) self.request.changeset.add(model_name, obj_id, obj_content, 'null')