我在尝试加载表单时遇到了请求上下文错误。
views.py
def add_company(request):
# Get the context from the request.
context = RequestContext(request)
# A HTTP POST?
if request.method == 'POST':
form = CompanyForm(request.POST)
# Have we been provided with a valid form?
if form.is_valid():
# Save the new category to the database.
form.save(commit=True)
# Now call the index() view.
# The user will be shown the homepage.
return index(request)
else:
# The supplied form contained errors - just print them to the terminal.
print form.errors
else:
# If the request was not a POST, display the form to enter details.
form = CompanyForm()
# Bad form (or form details), no form supplied...
# Render the form with error messages (if any).
return render_to_response('add_company.html', {'form': form}, context)
但是它被困在视图的第一行。我和rango教程一样。它有效。但是我的工作不起作用。有人提示吗?
感谢
请求标题:
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding gzip, deflate
Accept-Language de,en-US;q=0.7,en;q=0.3
Cache-Control max-age=0
Connection keep-alive
Cookie csrftoken=I9120vmRATOck4a0SSqlfJPLl62PMUOR; sessionid=isx0p4ezb2y9m129v6243ui3ucuyvrak
Host localhost:8000
User-Agent Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:33.0) Gecko/20100101 Firefox/33.0
响应:
Content-Type text/html
Date Sun, 07 Dec 2014 22:01:03 GMT
Server WSGIServer/0.1 Python/2.7.6
X-Frame-Options SAMEORIGIN
Request Method: GET
Request URL: http://127.0.0.1:8000/comp/new
Django Version: 1.7.1
Exception Type: NameError
Exception Value:
name 'models' is not defined
Exception Location: /home/mandaro/django/comp/company/forms.py in CompanyForm, line 5
Python Executable: /usr/bin/python
Python Version: 2.7.6
GOT it:
Problem wasn t on form - it was template import problem. Imported render_to_response instead of render solved it. Now it can goes on. ciao and tx
答案 0 :(得分:7)
您是否忘记导入RequestContext?
from django.template import RequestContext
答案 1 :(得分:6)
你实际上不需要担心传递RequestContext,因为如果你使用render(),它会为你处理它。
所以你会这样做:
return render(request, 'add_company.html', {'form': form})
而不是
return render_to_response('add_company.html', {'form': form}, context)
就是这样。当然,你也需要导入它。
from django.shortcuts import render
希望,这可以解决您的问题