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

2024-03-29

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

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

这让我想到了类似的事情:

/home/test-123/

但我为特定 URL 添加了一些客户端跟踪,因此我想在末尾使用锚点来识别诸如首次用户访问之类的内容,如下所示:

/home/test-123/#first

除了在重定向()方法中对上述 URL 进行硬编码之外,是否有更优雅的替代方法将锚点附加到我构建的 URL 的末尾?

谢谢, G


redirect() 接受网址 https://docs.djangoproject.com/en/dev/topics/http/shortcuts/#redirect,你可以使用reverse() 得到一个 https://docs.djangoproject.com/en/dev/topics/http/urls/#django.core.urlresolvers.reverse并附加哈希部分:

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))

EDIT for 姜戈2.0, use: from django.urls import reverse

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带有锚点 (#) 参数的 Django 重定向() 的相关文章

随机推荐