gpt4 book ai didi

python - django-braces 访问 mxin 每个 mixin 不同的 login_url 重定向

转载 作者:行者123 更新时间:2023-11-28 18:39:37 25 4
gpt4 key购买 nike

我正在使用 djang-braces

我想为在 View 上调用的每个 mixin 使用不同的 login_url。

例如,我希望所有 LoginRequiredMixin 调用都重定向到“accounts/login”,所有 MultiplePermissionsRequiredixin 调用都重定向到“accounts/permissions”。

由于这 2 个 mixin 是 AccessMixin 的子类,在 View 上设置“login_url”将影响这两个 mixin,我看不出如何为每个 Mixin 指定重定向。

我目前有这样的观点:

class View(LoginRequiredMixin, MultiplePermissionsRequiredMixin, View):
permissions = {
"all": (<modelmethods>),
}
login_url = '/accounts/permissions'

def get(self, request, *args, **kwargs):
cool view stuff

def post(self, request, *args, **kwargs):
cool view stuff

但是当然这会将两个 mixin 都重定向到“/accounts/permissions”

我想实现这样的目标:

class View(LoginRequiredMixin, MultiplePermissionsRequiredMixin, View):
permissions = {
"all": (<modelmethods>),
}
Login_Redirect = '/accounts/login'
MultiplePermissions_Redirect = '/accounts/permissions'

def get(self, request, *args, **kwargs):
cool view stuff

def post(self, request, *args, **kwargs):
cool view stuff

最佳答案

我不确定我是否理解得很好,但我能想到的一种解决方案是:

  • 将 login_url 设置为“/accounts/login”
  • 覆盖 check_permissions 方法,并在其中将 login_url 设置为“/accounts/permissions”。

这样,如果登录检查失败,它永远不会到达 check_permissions(我想),如果它回退到 check_permissions,您可以更改重定向 url,因此它会转到您想要的页面。

以为我从未尝试过。

关于python - django-braces 访问 mxin 每个 mixin 不同的 login_url 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28045428/

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