带有 anchor (#)参数的 Django 重定向()

标签 django

我目前正在使用 Django 的 redirect() 方法来构造要重定向到的 URL。我不想对 URL 进行硬编码,所以我一直在这样做:

return redirect('main.views.home', home_slug=slug)

这让我想到了这样的事情:

/home/test-123/

但是我正在为特定的 URL 添加一些客户端跟踪,所以我想在最后使用 anchor 来识别像这样的首次用户访问这样的事情:

/home/test-123/#first

如果没有在 redirect() 方法中对上述 URL 进行硬编码,是否有更优雅的替代方法将 anchor 附加到我构建的 URL 的末尾?

谢谢,
G

最佳答案

redirect() accepts URL , 你可以使用 reverse() to get one并附加哈希部分:

from django.core.urlresolvers import reverse

return redirect(reverse('main.views.home', kwargs={'home_slug':slug}) + '#first')
# or string formatting
return redirect('{}#first'.format(reverse('main.views.home', kwargs={'home_slug':slug})))
此外,还有一个快捷方式 django.shortcuts.resolve_url它的工作原理如下:
'{}#first'.format(resolve_url('main.views.home', home_slug=slug))
编辑 对于 Django 2.0 , 采用:from django.urls import reverse

关于带有 anchor (#)参数的 Django 重定向(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11165267/

相关文章:

Django 。通过邮件确认用户创建

python - 将 django-import-export 与基于类的 View 一起使用

python - 在Django项目中获取typeError错误

django - 一个 Django 项目的多个域托管

django - 操作错误没有这样的表 Django

python - 支持旧的和新的 URI 版本都可以在不破坏 reverse() 的情况下工作

python - 值错误: too many values to unpack (expected 3) in url config

python - 从 MySQL 迁移到 Postgres 后了解 "SEPARATOR"处或附近的语法错误

python - 过去一天登录的用户数

python - 从 python 脚本调用 mongoimport