Django: Staff Decorator
        Posted  
        
            by Mark
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by Mark
        
        
        
        Published on 2010-04-22T19:28:49Z
        Indexed on 
            2010/04/22
            19:33 UTC
        
        
        Read the original article
        Hit count: 227
        
I'm trying to write a "staff only" decorator for Django, but I can't seem to get it to work:
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
Trying to follow lead from here. I'm getting:
'WSGIRequest' object has no attribute '__name__'
But if I take those 3 lines out, I just get a useless "Internal Server Error". What am I doing wrong here?
© Stack Overflow or respective owner