我试图写一个Django的“工作人员只有”装饰,但我似乎无法得到它的工作:Django的:员工装饰
def staff_only(error='Only staff may view this page.'):
def _dec(view_func):
def _view(request, *args, **kwargs):
u = request.user
if u.is_authenticated() and u.is_staff:
return view_func(request, *args, **kwargs)
messages.error(request, error)
return HttpResponseRedirect(request.META.get('HTTP_REFERER', reverse('home')))
_view.__name__ = view_func.__name__
_view.__dict__ = view_func.__dict__
_view.__doc__ = view_func.__doc__
return _view
return _dec
试图follow lead from here。我越来越:
'WSGIRequest' object has no attribute '__name__'
但是,如果我把这些三线出来,我只是得到一个无用的“内部服务器错误”。我在这里做错了什么?
哦...那我怎么解决这个问题? – mpen 2010-04-22 20:27:21
我开始明白,所以如果我在我看来有多个功能,我必须在他们每个人面前添加@staffonly? – 2014-02-19 13:46:41