【发布时间】:2012-02-10 19:01:09
【问题描述】:
在我的 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”
如何让视图名称恢复正常?
谢谢
【问题讨论】: