Python 为什么我会得到TypeError:context必须是dict而不是context。德扬戈
尝试设置一个网页,列出创业公司的标签(接下来是Django Unreleased)。这本书使用Django 1.8,我使用的是3.0。有些地方我在书中看到了弃用的函数,并且能够找到更新的替换函数,但是我不明白为什么django在加载主页时会给我这个错误。在Python和Django中仍然有点新。执行Python 为什么我会得到TypeError:context必须是dict而不是context。德扬戈,python,django,Python,Django,尝试设置一个网页,列出创业公司的标签(接下来是Django Unreleased)。这本书使用Django 1.8,我使用的是3.0。有些地方我在书中看到了弃用的函数,并且能够找到更新的替换函数,但是我不明白为什么django在加载主页时会给我这个错误。在Python和Django中仍然有点新。执行Tag.objects.all()时,我确实创建了标记,并且一次启动已保存到具有相关标记的数据库中 Views.py Tag_list.html 您应该将上下文变量作为dict对象传递给模板,如下所示
Tag.objects.all()
时,我确实创建了标记,并且一次启动已保存到具有相关标记的数据库中
Views.py
Tag_list.html
您应该将上下文变量作为dict对象传递给模板,如下所示
def homepage(request):
tag_list = Tag.objects.all()
template = loader.get_template('organizer/tag_list.html')
context = {'tag_list': tag_list} # update this line
output = template.render(context)
return HttpResponse(output)
此外,还可以使用函数重写视图
在django 1.8+中,不再使用上下文实例,而是将上下文作为字典传递。我建议您阅读django文档,而不要阅读使用旧版本django的书籍,因为旧版本的django已不再使用,谢谢!在整理出错误后,再加上文件夹位置,它就工作了!!!
{% extends parent_template|default:"organizer/base_organizer.html" %} #An alternative reference to "base.html"
{% block title %}
{{ block.super }} - Tag List
{% endblock %}
{% block content%}
<h2>Tag List</h2>
<ul>
{% for tag in tag_list %}
<li>
<a href="">
{{ tag.name|title }}</a>
</li>
{% empty %}
<p><em>There are currently no Tags available.</em></p>
{% endfor %}
</ul>
{% endblock %}
context must be a dict rather than Context.
Request Method: GET
Request URL: http://127.0.0.1:8000/
Django Version: 3.0
Exception Type: TypeError
Exception Value:
context must be a dict rather than Context.
Exception Location: C:\Users\Antho\Desktop\suorganizer\su_env\lib\site-packages\django\template\context.py in make_context, line 270
Python Executable: C:\Users\Antho\Desktop\suorganizer\su_env\Scripts\python.exe
Python Version: 3.7.5
Python Path:
def homepage(request):
tag_list = Tag.objects.all()
template = loader.get_template('organizer/tag_list.html')
context = {'tag_list': tag_list} # update this line
output = template.render(context)
return HttpResponse(output)
def homepage(request):
tag_list = Tag.objects.all()
context = {'tag_list': tag_list}
return render(request, 'organizer/tag_list.html', context)