У меня есть флеш-приложение с несколькими конечными точками, и я написал декоратора для регистрации конечных точек для целей аудита. Декоратор работает отлично, когда я попытался с одной конечной точкой, но когда я добавить декоратор второй конечной точки, я столкнулся ошибка утвержденияDecorator - ошибка утверждения отображения точки зрения
Для примера, у меня есть две конечных точек для редактирования и удаления
@route('/owners/<ownerid>/delete',methods=['DELETE'])
@logtrail()
def deleteOwner(ownerid):
if request.method == 'DELETE':
return jsonify({})
@route('/owners/<ownerid>/edit',methods=['PUT'])
@logtrail()
def editOwner(ownerid):
if request.method == 'PUT':
return jsonify({})
декоратор @logtrail отлично работает либо для редактирования или удаления редактирования точки, но приложение не запускается, если добавить декоратор обоих конечных точек
декоратор код, как показано ниже
def logtrail(usermsg=None):
def decorator(func):
def wrap(*args, **kwargs):
print "Audit code goes here"
return func(**kwargs)
return wrap
return decorator
Точная ошибка, которую я получаю, когда я начинаю приложение
AssertionError: View function mapping is overwriting an existing endpoint function: wrap
С сообщением об ошибке, я получаю имя должно быть уникальным, как имена методов, но как я могу это сделать в декоратора?
Любое предложение будет полезно
Да понял, что, и добавил это к коду оберткой .__ name__ = func.func_name, который решал мой вопрос – slysid