【问题标题】:Get contents of HttpResponseRedirect in Django在 Django 中获取 HttpResponseRedirect 的内容
【发布时间】:2013-12-03 23:39:24
【问题描述】:

如果我已登录并处于特定视图中,如何使同一 Django 站点上另一个受保护(需要身份验证)路径的内容可用于该特定视图?

我尝试手动构建一个 urllib2 开启器并传递登录用户的 sessionid:

import urllib2
opener = urllib2.build_opener()
session_id = request.COOKIES.get('sessionid')
opener.addheaders.append(('Cookie', 'sessionid={0}'.format(session_id)))
html = opener.open(redirect_url).read()

以上不起作用,页面的内容是登录页面,因为它不考虑用户已登录。也许我错过了更多的标题信息?

我也尝试过抓取 HttpResponseRedirect 的内容,但由于没有呈现响应,因此内容为空:

h = HttpResponseRedirect("http://{0}/{1}".format(domain, protected_path))
h.content # this is empty

【问题讨论】:

    标签: python django session authentication httpresponse


    【解决方案1】:

    你不能只调用视图中引用第二个 url 的特定视图并将其返回值分配给某个变量吗?

    【讨论】:

    • 或者,如果有必要,将共享行为抽象为两个视图都可以调用的助手。
    • prometh07:我无法返回第二个视图作为响应。在第二个视图的呈现响应可用后,我需要将用户注销。第一个视图是一个公共代理,它临时登录用户,从第二个视图中获取受保护的内容,将用户注销,并在新的响应中返回受保护的内容。该代理用于将内容转发到在线 PDF 生成器,该生成器无法访问受保护的路径。
    猜你喜欢
    • 1970-01-01
    • 2011-08-14
    • 1970-01-01
    • 2010-10-28
    • 2011-11-16
    • 2012-01-06
    • 1970-01-01
    • 2018-11-15
    • 1970-01-01
    相关资源
    最近更新 更多