Django 警告-RemovedInDjango110Warning:render() 必须使用字典调用,而不是上下文

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)

Say*_*yse 5

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})