【问题标题】:Use staff_member_required decorator, but without being redirected to the admin interface?使用 staff_member_required 装饰器,但没有被重定向到管理界面?
【发布时间】: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..):
        ...

如何进行自定义登录,而不是在默认管理登录界面中重定向?

【问题讨论】:

  • 你必须自己写装饰器:)

标签: django authentication decorator


【解决方案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..):
        ...
    

    【讨论】:

      猜你喜欢
      • 2021-03-24
      • 2012-02-22
      • 2015-07-19
      • 2020-06-13
      • 1970-01-01
      • 1970-01-01
      • 2018-06-17
      • 2021-11-24
      • 2011-12-25
      相关资源
      最近更新 更多