我正在使用 Heroku 的工具和指南在 Django 中开发应用程序,但遇到了问题。在我的本地开发环境中,如果我使用 post 方法,我将无法从我的视图中得到响应。目前我正在使用一个简单的表单将一组 id 发布到视图中。
def webinarToHS(request):
errors = []
if request.method == 'GET':
webinars = get_upcoming_webinars()
return render_to_response('webinarToHS.html', {'webinars': webinars.json(), 'length': len(webinars.json())/2}, RequestContext(request))
elif request.method == 'POST':
method = request.method
return HttpResponse("test")
在控制台中,它返回 200 响应 ok。但是浏览器显示一个空白的 html 页面(空的正文标签)。
在生产/heroku 服务器上,我得到了响应,所以我不认为代码本身有问题,而是我的设置文件有问题。我回顾了heroku django设置指南,并在我的本地机器上使用了一个环境变量来关闭这些设置,如果我在本地开发中,但我仍然遇到这个问题。
谁能给我一个关于从哪里开始寻找修复的线索?我正在运行带有 virtualenv 包装器、python 2.7.5 和 django 1.5 的 Windows 7
谢谢。
根据评论中的要求,WebinarToHS 模板文件如下:
<html>
<head>
<title>Add Webinars to Hubspot</title>
<style>
html, body {background-color: #eee;}
#wrapper {background-color: #fefefe; width:60%; margin:0 auto; position:relative; margin-top:50px; padding:25px;}
form {text-align:center;}
label {font-weight:bold;}
.submit {float:right;}
.check {float:left; text-align:left; max-width:48%; margin-right:2%;}
</style>
</head>
<body>
<div id="wrapper">
<form name="form" action="{%url 'G2WApi.views.webinarToHS' %}" method="post">
{% csrf_token %}
<label for="webinarKey">Choose the Webinar(s) you would like to add to hubspot:</label><br/><br/>
<div class="check">
{% for webinar in webinars %}
<input type="checkbox" name="webinars[]" value="{{ webinar.webinarKey }}" />{{ webinar.subject }}<br/>
{% if forloop.counter|divisibleby:length %}
</div><div class="check">
{% endif %}
{% endfor %}
</div>
<div style="clear:both; height:10px;"></div>
<input class="submit" type="submit" value="Add to Hubspot" />
</form>
</div>
</body>
</html>