'Request' object has no attribute 'META'
12,907
Solution 1
You replaced the request object passed to your view by a local variable in the line
request = urllib.request.Request(NASDAQ, None, headers) # The assembled request
Name this variable something else. Like
assembled_request = urllib.request.Request(NASDAQ, None, headers) # The assembled request
response = urllib.request.urlopen(assembled_request)
Solution 2
You have reassigned django's request with the return value from urllib, which is why your other lines are not working:
request = urllib.request.Request(NASDAQ, None, headers)
Change the above line so that it evaluates to something other than request
.
Comments
-
Bun almost 2 years
Here is my view:
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)
When I return
HttpResponse
, there is no error.I'm trying to render the context_dict above into data template. This gives me
'Request' object has no attribute Meta
. How do I fix this? -
Dário over 7 yearsI hit a similar issue but with Generic View Classes. In my case the culprit was a model named Request which was replacing the view's request object.