您好我使用Mandrill从我的系统发送少量电子邮件(Mandrill旨在帮助需要发送交易电子邮件的应用程序或网站,如密码重置,订单确认和欢迎消息。)我正在准备一个网址并附上它当用户点击这些电子邮件中的链接时,他将被重定向到网页中的特定部分。
我附上的网址是这样的:" https://mysite/account/subs/#manage_contacts"
如果用户登录我的应用程序,他将被重定向到特定的URL,如果没有,他将被重定向到登录页面,并将站点和目标变量设置为将其重定向到他单击的URL。
在登录页面中,这是网址:
" https://mysite/authenticate/?site=xyz&target=/account/subs/#manage_contacts"
但登录后,用户被重定向到' mysite / account / subs /'。 遗漏"#manage_contacts"。如何获得目标中的整个网址。 我检查了目标的值,它只有mysite / account / subs /
成功登录后负责重定向的部分视图:
site = request.GET.get('site', '')
logger.debug('site:' + str(site))
target = request.GET.get('target', '')
logger.debug('target:' + str(target))
if site and target:
redirect_url = target
else:
redirect_url = '/authenticate/'
logger.debug('redirect_url:' + str(redirect_url))
return HttpResponseRedirect(redirect_url)
答案 0 :(得分:1)
#
是浏览器显示更友好的标记。
它不是http请求的一部分,因此您无法通过<{1}}
获取#manage_contacts
详细信息:
答案 1 :(得分:0)
你需要逃避#。浏览器将此视为当前URL的片段,并且不会将其发送到后端。
将目标网址设置为https://mysite/account/subs/%23manage_contacts
。