我想要做的是通过模板在model.py中设置一个参数。
main_index上有一个文本框,我想点击“提交”将其发布到结果页面。但是,结果页面无法接收POST,即始终打印“Not Post!”
以下是观点:
def main_index(request):
c = {}
c.update(csrf(request))
cmodel = InfoController.objects.all()
print "I am at index"
return render_to_response('infoRetriever/index.html', c)
def results(request):
if not request.method == 'POST':
print "Not Post!"
c = {}
c.update(csrf(request))
cmodel = InfoController()
metaUrl = request.POST['urls']
firstList = cmodel.controller(metaUrl)
print "I am at result"
for item in firstList:
print "items: ", item
return render_to_response('infoRetriever/results.html', { 'firstList': firstList})
模板:
<form action="{% url 'infoRetriever:request_page' %}" method="POST">
{% csrf_token %}
<input type="text" name="urls" size="60" />
<input id="submit" type="submit" value="Click" />
</form>
非常感谢。
答案 0 :(得分:1)
您应该在request.POST
时从request.method=='POST'
中选择数据。这就是您拥有KeyError
的原因,因为请求方法是GET
。所以你可以这样做:
if request.method == 'POST':
metaUrl = request.POST['urls']
另外,请确保您没有从request_page
视图重定向到results
视图,因为该请求将不再是POST
results
次视图请求。