0

我要做的是通过模板在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>

非常感谢。

4

1 回答 1

1

您应该request.POSTrequest.method=='POST'. 这就是您拥有的原因,KeyError因为请求方法是GET. 所以你可以这样做:

if request.method == 'POST':
    metaUrl = request.POST['urls']

还要确保您没有从request_page一个视图重定向到另一个视图,results因为这样该请求将不再是一个视图POST请求results

于 2013-07-15T04:19:22.910 回答