python - Django 设置 LOGIN_REDIRECT_URL 动态基于语言
问题描述
假设我有 LOGIN_REDIRECT_URL='/foo/bar/' 并且我在http://127.0.0.1/en/login/上并且我成功登录。我将被重定向到http://127.0.0.1/foo/bar/导致丢失语言前缀。为了维护 url 中的语言代码,我应该怎么做?当然,我希望所有其他语言代码都可以正常工作,并且默认的代码也一样:
http://127.0.0.1/en/login/ -> http://127.0.0.1/en/foo/bar/
http://127.0.0.1/login/ -> http://127.0.0.1/foo/bar/
http://127.0.0.1/ro/login/ -> http://127.0.0.1/ro/foo/bar/
解决方案
假设您正在使用 Django auth 和LoginView
框架中的 ,您可以参数化登录后重定向到的 URL。LOGIN_REDIRECT_URL
当未指定时,它是一个后备。
该LoginView
属性称为next
。next
可以使用上一页中的参数设置 url,例如?next=<your_url>
. 只是不要忘记使用is_safe_url()
from对其进行消毒django.utils.http
。
推荐阅读
- flutter - 在 Flutter Stacked v2 中注册实现抽象类的服务的正确方法是什么
- svg - SVG:如何将 SVG 的路径合并为单个路径?
- design-patterns - 在 REST API 中定义操作
- python - Excel 中的单元格看起来是空的。但在熊猫中它显示为 '\n-'
- google-sheets - 函数调用/从字符串中引用
- c# - Xamarin 使矩形从图像继承位置
- java - 未创建死信队列
- oracle - 通过 ODBC 连接到 Oracle PDB
- javascript - 为什么使用 v-if 不进入转换但离开工作的元素内部的转换?
- webdav - Microsoft-WebDAV-MiniRedir 在复制文件时设置错误的日期值