我試圖寫一個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