2
在我的Django项目,我通常测试,如果视图被称为是正确使用:Django的测试返回_wrapped_view作为视图名称,而不是正确的视图名称
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)
当我申请这个装饰始终是“_wrapped_view”
我怎样才能使视图名称回到正常的的resolve(response.request["PATH_INFO"])[0].func_name
结果呢?
感谢
感谢您的快速响应!它非常完美! – duduklein 2012-01-15 13:28:00