django - 重定向到外部网站时,url 会附加到请求的 url 末尾

标签 django django-rest-framework django-views django-urls

我试图将用户重定向到一个 URl,但它将我重定向到一个不正确的 url。

views.py:

def redirect_shortner(request):
    return redirect('www.google.com')

url.py:

urlpatterns = [
    path('', redirect_shortner, name='redirect_shortner'),
]

代码对我来说是正确的,但用户被错误地重定向到当前网址附加指定网址的网址,即用户被重定向到 http://127.0.0.1:8000/www.google .comhttp://127.0.0.1:8000/ 是当前网址时。

最佳答案

当想要重定向到其他网站时,应该提供其他网站上页面的绝对 url(请参阅问题 Absolute vs relative URLs )。 www.google.com 不是绝对网址,即它缺少协议(protocol) https://,因此它被视为相对 网址来自用户当前所在的页面,因此解析为 http://127.0.0.1:8000/www.google.com。相反,您希望将重定向编写为绝对重定向:

def redirect_shortner(request):
    return redirect('https://www.google.com/')

关于django - 重定向到外部网站时,url 会附加到请求的 url 末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68163832/

相关文章:

python - 在Django CreateView中使用当前用户初始化ForeignKey用户

django - 使用模板变量创建名为 URL 的 Django?

python - 如何在 Django REST 框架中创建部分搜索过滤器?

django - 如何解决 DRF 路由器重复的 url

python - 使用 postman 的 GET 请求可以正常工作,但不能使用 python (HTTPSConnectionPool)

python - 有没有办法获取DRF中所有ManyToMany相关的对象

django - 如何将实际图像文件从一个模型复制到另一个模型?

Django 注册 - 没有名为简单错误的模块

javascript - 从 Django 到 JavaScript 的全局变量

python - Django 重定向到模板传递模型