我正在尝试将我的应用从django 1.4移植到1.5。我改变了所有出现的情况:
return direct_to_template(request, template)
为:
return TemplateView.as_view(template_name=template)(request)
这适用于我使用GET的所有表单,但对于使用POST的表单,我最终在浏览器上显示空白页面。任何地方都没有错误,只是一个空白页。
在1.5中我用什么代替direct_to_template进行POST?
答案 0 :(得分:4)
有一个TemplateResponse响应类,它采用与direct_to_template快捷方式相同的参数。你可以替换并保持安全
return TemplateResponse(request, template)
答案 1 :(得分:3)
render
shortcut可用作此direct_to_template
的替代品。它采用与direct_to_template
相同的参数,因此它可以是一个简单的查找和替换。
return direct_to_template(request, template)
变为
return render(request, template)
答案 2 :(得分:2)
一般情况下,您不必显式返回这样的TemplateView,只需将其放入网址即可完成。
现在,你没有得到Post的响应的原因是TemplateView只定义了一个GET方法
因此,您需要创建一个继承自TemplateView的新类,以便自己实现POST方法。
我的建议是寻找另一个CBV并查看是否更符合您的需求,也许FormView就足够了
https://github.com/django/django/blob/master/django/views/generic/base.py#L147