最开始编写的views.py
from django.template import Context, Template
def contact(request):
form=forms.ContactForm()
template=get_template('contact.html')
request_context=RequestContext(request)
request_context.push(locals())
html=template.render(request_context)
return HttpResponse(html)
出现报错:
TypeError at /post/
context must be a dict rather than RequestContext.
Request Method: GET
Request URL: http://localhost:8000/post/
Django Version: 1.11.17
Exception Type: TypeError
Exception Value:
context must be a dict rather than RequestContext.
Exception Location: /home/croline/VENV/local/lib/python2.7/site-packages/django/template/context.py in make_context, line 287
Python Executable: /home/croline/VENV/bin/python
Python Version: 2.7.12
Python Path:
['/home/croline/mydjango/mood',
'/home/croline/VENV/lib/python2.7',
'/home/croline/VENV/lib/python2.7/plat-x86_64-linux-gnu',
'/home/croline/VENV/lib/python2.7/lib-tk',
'/home/croline/VENV/lib/python2.7/lib-old',
'/home/croline/VENV/lib/python2.7/lib-dynload',
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-x86_64-linux-gnu',
'/usr/lib/python2.7/lib-tk',
'/home/croline/VENV/local/lib/python2.7/site-packages',
'/home/croline/VENV/lib/python2.7/site-packages']
Server time: 星期一, 25 二月 2019 20:18:38 +0800
解决方法:
将这三句删除
request_context=RequestContext(request)
request_context.push(locals())
html=template.render(request_context)
改为:
html = template.render(context=locals(), request=request)
完美解决!