在表单中,一切正常,HttpResponseRedirect越少
我尝试将表单内容重定向到rateio.html
。但是,这显示错误:
NoReverseMatch at /proposal/
Reverse for 'rateio/' with arguments '()' and keyword arguments '{'table': .......
我发现奇怪的是,我只是指着rateio
只有reverse('rateio/', ...
Django正在寻找/proposal/
有人可以告诉我,我做错了什么?谢谢你的关注。
views.py
def proposal(request):
if request.method == 'POST':
form = Proposal(request.POST)
if form.is_valid():
validate, content = table_split(request.POST)
if validate==True:
table, priority, total_sum = valido(content)
json_priority = simplejson.dumps(priority)
json_total_sum = simplejson.dumps(total_sum)
return HttpResponseRedirect(reverse('rateio/', kwargs={'table':table, 'priority' : json_priority, 'total_sum' : json_total_sum}))
if validate==False:
return render_to_response('proposal.html', {'form' : form, 'not_validate' : 'Incorrectly filled in proposal fill again'}, context_instance=RequestContext(request))
else:
return render_to_response('proposal.html', {'form' : form, 'not_validate' : 'Incorrectly filled in proposal fill again'}, context_instance=RequestContext(request))
else:
form = Proposal()
return render_to_response('proposal.html', {'form' : form}, context_instance=RequestContext(request))
def rateio(request,data):
return render_to_response('rateio.html', {'table':data[table], 'priority' : data[priority], 'total_sum' : data[total_sum]}, context_instance=RequestContext(request))
urls.py
url(r'^rateio/$', 'mge.core.views.rateio'),
url(r'^proposal/$', 'mge.core.views.proposal'),
proposal.html
<form action="" method="post">
{% csrf_token %}
.....
<input type="submit" value="Send">
</form>
答案 0 :(得分:1)
你有两个错误。
首先,reverse
的第一个参数是视图名称,而不是URL。所以它应该是urls.py中的'mge.core.views.rateio'。或者甚至更好,给模式一个明确的名称 - name="ratio"
并使用它。
其次,您尝试传递三个kwargs,但比率URL不接受任何参数。你对这些价值观有什么期望?其中两个是JSON文档,您不希望在URL中传递它们。