2016-06-19 13 views
0

ich von 1.8.4 bis 1.9.7 mein django Projekt aktualisiert und jetzt bekomme ich die folgende WarnungDjango Warnung - RemovedInDjango110Warning: render() muss mit einem dict genannt werden, kein Context

RemovedInDjango110Warning: render() muss mit einem dict, nicht einem Context aufgerufen werden. Rückkehr Httpresponse (t.render (c))

meine Ansichten sehen im Allgemeinen wie dieses

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

irgendwelche Vorschläge, wie dies zu beheben?


Update

basiert auf der bewährten Antwort wird mein Code die folgenden Bestimmungen:

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

Antwort

3

Die django.shortcuts.render Funktion ein Hilfsmethode für eine Weile wurde nun, dass die Anforderung enthält und übergibt die Kontextdaten in einem Wörterbuch, so können Sie die meisten Ihrer Code ändern die neue Methode

context_data = "context data to render" 

t = loader.get_template('maps/my_template.html') 
c = Context(context_data) 
return HttpResponse(t.render(c)) 

reflektieren würde biegen Sie in

render(request, 'maps/my_template.html', {'item1': value }) 

Der aber tatsächliche Fehler besagt, dass render jetzt nur ein Wörterbuch benötigt, und nicht ein Kontextobjekt. so wäre es

0

Versuchen context_data = "context data to render" in context_data["context_data"] = "context data to render" ändern.

Ziel ist es, context_data in ein dict zu ändern.