2018年6月7日木曜日

django 1.11.xでContextとRenderContextでエラー出た

最近djangoのバージョンを1.10系から1.11系に上げたところ、テンプレートの吐き出しで、

TypeError: context must be a dict rather than Context.

のエラーが出るようになった、ドキュメントで確認したところ、template.render()に、ContextやRenderContextが渡せなくなったよう。 なので、こういうコードは1.11系からダメなので、
def index(request):
    dic = {
        'title': 'index',
    }
    c = Context(dic)
    template = loader.get_template('index.html')
    return HttpResponse(template.render(c))
こういう風に普通にdictを渡す必要があるみたい。
def index(request):
    dic = {
        'title': 'index',
    }
    template = loader.get_template('index.html')
    return HttpResponse(template.render(dic))

久しぶりにdjango触ったので、ハマタよ..
ちなみにこちらに詳細がありまする...1.10から bump up する人は気をつけてね

https://docs.djangoproject.com/en/1.11/releases/1.11/#django-template-backends-django-template-render-prohibits-non-dict-context

0 件のコメント:

コメントを投稿