使用 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_requireduser_passes_test 的包装器(请参阅source code),它还接受login_url 参数,因此您可以这样做:

@staff_member_required(login_url=example_url)
def staff_view(request..):
    ...

【讨论】:

以上是关于使用 staff_member_required 装饰器,但没有被重定向到管理界面?的主要内容,如果未能解决你的问题,请参考以下文章

第一篇 用于测试使用

在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?

今目标使用教程 今目标任务使用篇

Qt静态编译时使用OpenSSL有三种方式(不使用,动态使用,静态使用,默认是动态使用)

MySQL db 在按日期排序时使用“使用位置;使用临时;使用文件排序”

使用“使用严格”作为“使用强”的备份