gpt4 book ai didi

python - 黑盒路由 URL 的 Django 写入身份验证重定向

转载 作者:行者123 更新时间:2023-11-28 22:27:16 25 4
gpt4 key购买 nike

我正在使用一个名为 django-dashing 的 Django 库它有一组预定义的 url 来呈现仪表板。我这样导入它们

urlpatterns = [
...
url(r'^dashboard/', include(dashing_router.urls)),
...
]

我希望路由器只能由管理员访问,我可以通过 django-dashing 中的一些配置设置来做到这一点.但是,当非管理员用户尝试访问 /dashboard/ , 我想将它们重定向到 django 的 /admin/面板让他们登录,而不是抛出 403django-dashing

django-dashing View 实际上被黑盒化了,我想知道是否有一种方法可以编写一个“预览”来拦截对 /dashboard/ 的请求,运行一些代码——具体来说,进行适当的重定向——然后继续到实际的仪表板。

我知道这很容易通过编写两个 url 来完成,比如 /dashboard-auth/重定向到 /dashboard/ , 但我不希望用户必须转到一个 URL 才能到达另一个

有什么建议吗?

最佳答案

Django 简单自定义中间件是另一种选择...

from django.core.urlresolvers import reverse
from django.http import HttpResponseRedirect

class DashingRedirectMiddleware(object):

def process_request(self, request):
if request.path.startswith('/dashing/') and not request.user.is_staff:
return HttpResponseRedirect(reverse('admin:login'))
return

不要忘记将此中间件添加到您的 DJANGO 设置中...

MIDDLEWARE_CLASSES = [
...
'django.contrib.auth.middleware.AuthenticationMiddleware',
'yourapp.middleware.DashingRedirectMiddleware',
...
]

或者类似的东西。

关于python - 黑盒路由 URL 的 Django 写入身份验证重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44138420/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com