В моем проекте django я обычно проверяю правильность вызываемого представления, используя:
viewName = resolve(response.request["PATH_INFO"])[0].func_name
self.assertEqual(viewName,'correct_view_name')
Мне удалось сделать это успешно, пока я не добавил декоратор. С тех пор мои представления работают нормально, но я не могу проверить (по крайней мере, вот так) правильное имя представления.
Добавленный мной декоратор выглядит так:
def owner_required(view_func, Model):
'''
checks if the object is being accessed but its owner
'''
def decorator(view_func):
def _wrapped_view(request, *args, **kwargs):
obj = Model.objects.get(pk=int(kwargs['pk']))
if obj.user == request.user:
return view_func(request, *args, **kwargs)
return HttpResponse('You don't have access to this page.')
return _wrapped_view
return decorator(view_func)
Результат resolve(response.request["PATH_INFO"])[0].func_name
, когда я применяю этот декоратор, всегда "_wrapped_view"
Как сделать так, чтобы имя представления вернулось к обычному?
Спасибо