'Request'对象没有属性'META'

时间:2015-06-03 04:51:25

标签: django python-3.x django-1.8

以下是我的观点:

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。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:13)

您已通过行

中的局部变量替换了传递给视图的请求对象
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)

答案 1 :(得分:2)

您已使用urllib的返回值重新分配了django的请求,这就是您的其他行无效的原因:

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

更改上面的行,使其评估为request以外的其他内容。