ImportError: cannot import name 'render_to_response' 解決方法

  前幾天 Django 官方推出了 3.0 框架,項目在 K8S 內部署啓動的時候,報了這個錯:ImportError: cannot import name 'render_to_response' from 'django.shortcuts'。而後簡單排查下了,進到容器內用 pip3 show django 命令能夠看到框架升級到了 3.0(以前一直用的 Django 2+),看官方資料查到 Django 3.0 已經將 render_to_response 移除了。由於有部分代碼在用 render_to_response ,而咱們打包鏡像的時候沒有指定 Django 版本,因此啓動時報錯了。解決方法有兩個:html

 

方法一

 安裝指定版本的 Django 版本(3.0如下),如:django

pip3 install django==2.1.3

 

方法二

 使用 render 代替 render_to_response。瀏覽器

 相同點:都是展現模板頁面的框架

 不一樣點:render 方法可接收三個參數,一是request參數,二是待渲染的html模板文件,三是保存具體數據的字典參數。它的做用就是將數據填充進模板文件,最後把結果返回給瀏覽器。render 自動使用RequestContext,而 render_to_response 須要 coding 進去。spa

return render(request,"information.html",{"name":"test","password":"123456"})
return render_to_response("information.html",{"name":"test","password":"123456"},context_instance = RequestContext(request))
相關文章
相關標籤/搜索