Django:员工装饰器 [英] Django: Staff Decorator

查看:43
本文介绍了Django:员工装饰器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试为Django写一个仅职员"装饰器,但我似乎无法使其工作:

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

尝试从此处关注线索.我得到了:

'WSGIRequest'对象没有属性'__name __'

但是,如果我删除这3行,我只会得到一个无用的内部服务器错误".我在这里做什么错了?

But if I take those 3 lines out, I just get a useless "Internal Server Error". What am I doing wrong here?

推荐答案

此装饰器已经以

from django.contrib.admin.views.decorators import staff_member_required

@staff_member_required

后备箱: http://code.djangoproject.com/browser/django/trunk/django/contrib/admin/views/decorators.py

这篇关于Django:员工装饰器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆