获取在网址

时间:2015-07-30 08:32:57

标签: python django url post get

您好我使用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)
        

2 个答案:

答案 0 :(得分:1)

#是浏览器显示更友好的标记。

它不是http请求的一部分,因此您无法通过<{1}}

获取
#manage_contacts

详细信息:

what-is-the-symbol-in-the-url

Fragment_identifier

答案 1 :(得分:0)

你需要逃避#。浏览器将此视为当前URL的片段,并且不会将其发送到后端。

将目标网址设置为https://mysite/account/subs/%23manage_contacts