使用 staff_member_required 装饰器,但没有被重定向到管理界面?
Posted
技术标签:
【中文标题】使用 staff_member_required 装饰器,但没有被重定向到管理界面?【英文标题】:Use staff_member_required decorator, but without being redirected to the admin interface? 【发布时间】:2012-07-31 06:11:48 【问题描述】:当我尝试使用 staff_view 时,我在管理员身份验证界面中被重定向。
from django.contrib.admin.views.decorators import staff_member_required
@staff_member_required
def staff_view(request..):
...
如何进行自定义登录,而不是在默认管理登录界面中重定向?
【问题讨论】:
你必须自己写装饰器:) 【参考方案1】:你可以使用 Django 的 user_passes_test 装饰器:
from django.contrib.auth.decorators import user_passes_test
@user_passes_test(lambda u:u.is_staff, login_url=reverse_lazy('foo'))
def staff_view(request..):
...
【讨论】:
【参考方案2】:值得指出的是,staff_member_required
是user_passes_test
的包装器(请参阅source code),它还接受login_url
参数,因此您可以这样做:
@staff_member_required(login_url=example_url)
def staff_view(request..):
...
【讨论】:
以上是关于使用 staff_member_required 装饰器,但没有被重定向到管理界面?的主要内容,如果未能解决你的问题,请参考以下文章
在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?
Qt静态编译时使用OpenSSL有三种方式(不使用,动态使用,静态使用,默认是动态使用)