udo*_*udo 1 django django-views
我将 django 项目从 1.8.4 升级到 1.9.7,现在收到以下警告
已删除InDjango110警告:render() 必须使用字典调用,而不是上下文。返回 HttpResponse(t.render(c))
我的观点通常是这样的
def my_view(request):
.
.
.
context_data = "context data to render"
t = loader.get_template('maps/my_template.html')
c = Context(context_data)
return HttpResponse(t.render(c))
Run Code Online (Sandbox Code Playgroud)
有什么建议如何解决这个问题吗?
更新
根据批准的答案,我的代码将变为以下内容:
from django.shortcuts import render
def my_view(request):
.
.
.
context_data = "context data to render"
return render(request, 'maps/my_template.html', dict(context_data))
Run Code Online (Sandbox Code Playgroud)
该django.shortcuts.render函数已经成为实用方法一段时间了,它包含请求并在字典中传递上下文数据,因此您可以更改大部分代码以反映新方法
context_data = "context data to render"
t = loader.get_template('maps/my_template.html')
c = Context(context_data)
return HttpResponse(t.render(c))
Run Code Online (Sandbox Code Playgroud)
会变成
render(request, 'maps/my_template.html', {'item1': value })
Run Code Online (Sandbox Code Playgroud)
然而,实际的错误是render现在只需要一个字典,而不是上下文对象。所以它会是t.render({'item1': value})
| 归档时间: |
|
| 查看次数: |
3664 次 |
| 最近记录: |