'Override original method, and add some attributes to obj
This have to be made, because if object is newly created, he must know
where he lives.'

def save_model(self, request, obj, form, change):

    pl_admin = obj.placeholder._get_attached_admin()
    if pl_admin:
        operation_kwargs = {'request': request, 'placeholder': obj.placeholder}
        if change:
            operation_kwargs['old_plugin'] = self.model.objects.get(pk=obj.pk)
            operation_kwargs['new_plugin'] = obj
            operation_kwargs['operation'] = operations.CHANGE_PLUGIN
        else:
            parent_id = (obj.parent.pk if obj.parent else None)
            tree_order = obj.placeholder.get_plugin_tree_order(parent_id)
            operation_kwargs['plugin'] = obj
            operation_kwargs['operation'] = operations.ADD_PLUGIN
            operation_kwargs['tree_order'] = tree_order
        self._operation_token = pl_admin._send_pre_placeholder_operation(**operation_kwargs)
    self.saved_object = obj
    return super(CMSPluginBase, self).save_model(request, obj, form, change)
