从 Django HttpResponseRedirect 或重定向中删除锚名称

Posted

技术标签:

【中文标题】从 Django HttpResponseRedirect 或重定向中删除锚名称【英文标题】:Remove anchor name from Django HttpResponseRedirect or redirect 【发布时间】:2021-01-28 09:15:21 【问题描述】:

我不知道这是错误还是功能,但是当我使用联系表单锚点在主页上时 (url = http://localhost:8000/#contact)

提交表单后,所有这些都会重定向,包括 #contact 锚名称,我无法摆脱它:

from django.http import HttpResponseRedirect
from django.urls import reverse
from django.shortcuts import redirect

# Following 3 lines all send back to http://localhost:8000/#contact
return HttpResponseRedirect(reverse('homepage'))
return redirect(reverse('homepage'))
return redirect('/')

# As a test, the following line redirects to http://localhost:8000/account/email/#contact
return HttpResponseRedirect(reverse('account:email'))

我发现一些人有相反的问题,尝试add the anchor name,但找不到与我的问题相关的问题

【问题讨论】:

使用你要重定向到的路径名,并在重定向函数中使用 【参考方案1】:

浏览器在重定向期间会保留一个片段,您可以查看这些 SO 问题/答案:

    URL hash is persisting between redirects URL Fragment and 302 redirects

所以,我相信您可以尝试在重定向 URL 中设置一个空片段来覆盖页面的 URL 片段。如果没有帮助,则在成功响应时从 JS 重定向。

【讨论】:

谢谢,成功了!我猜应该寻找更广泛的解决方案

以上是关于从 Django HttpResponseRedirect 或重定向中删除锚名称的主要内容,如果未能解决你的问题,请参考以下文章

从 Django 项目启动多个 Django 开发服务器

Django - 从模板链接到页面

如何从现有表创建 django 类 [重复]

Django,如何将变量从 Django 管理员传递到模板?

将数据从 excel 电子表格导入 django 模型

Django:从 Pandas 到 Django Rest 框架的模型查询集