2015-06-03 74 views
5

这里是我的观点:“请求”对象有没有属性“META”

def data(request, symbol): 
    context_dict = {} 

    NASDAQ = "http://www.nasdaq.com/symbol/{}/financials?query=income-statement".format(symbol) 

    import urllib.request 
    from bs4 import BeautifulSoup 

    user_agent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7' 
    headers = {'User-Agent': user_agent, } 
    request = urllib.request.Request(NASDAQ, None, headers) # The assembled request 
    response = urllib.request.urlopen(request) 
    html_data = response.read() # The data u need 

    soup = BeautifulSoup(html_data) 
    genTable = soup.find_all("div", class_="genTable") 

    context_dict['genTable'] = genTable 

    return render(request, 'data.html', context_dict) 

当我回到HttpResponse,没有错误。

我想呈现上面的context_dict到数据模板。这给了我'Request' object has no attribute Meta。我该如何解决?

回答

10

你在该行

request = urllib.request.Request(NASDAQ, None, headers) # The assembled request 

,这个变量别的东西取而代之的是一个局部变量传递给您的查看请求对象。像

assembled_request = urllib.request.Request(NASDAQ, None, headers) # The assembled request 
response = urllib.request.urlopen(assembled_request) 
+0

完美。它现在有效。感谢吨:) – Bun

+1

我遇到了类似的问题,但与通用视图类。在我的情况下,罪魁祸首是一个叫做Request的模型,它取代了视图的请求对象。 –

2

您已重新分配Django的从urllib的返回值,这就是为什么你的其他线路不工作要求:

request = urllib.request.Request(NASDAQ, None, headers) 

更改上面的行,这样它的计算结果比request其他的东西。

+0

:D很好。现在工作! – Bun

相关问题