view.py中的代码如下:
def index(request): latest_question_list = Question.objects.order_by('-pub_time')[:5] template = loader.get_template('polls/index.html') context = RequestContext(request, {'latest_question_list': latest_question_list}) return HttpResponse(template.render(context))然后访问指定页面时,就会报如下错误
File "D:\Python36\lib\site-packages\django\template\backends\django.py", line 59, in render context = make_context(context, request, autoescape=self.backend.engine.autoescape) File "D:\Python36\lib\site-packages\django\template\context.py", line 274, in make_context raise TypeError('context must be a dict rather than %s.' % context.__class__.__name__) TypeError: context must be a dict rather than RequestContext.
从错误中可以看到提示context应该是一个字典类型,而不是一个RequestContext,由此可知,代码中,我们的context的确是一个RequestContext类的实例,应为是跟着网上学习Django,所以大胆的尝试一把,将context修改为直接是后面的字典参数,如下:
context = {'latest_question_list':latest_question_list}
运行通过
最终代码为:
def index(request): latest_question_list = Question.objects.order_by('-pub_time')[:5] template = loader.get_template('polls/index.html') context = {'latest_question_list':latest_question_list} return HttpResponse(template.render(context))