Django将变量传递给Httpresponseredirect会引发异常

时间:2016-09-06 00:56:22

标签: python django

我现在面临的问题是我得到了一个:

反向'文档'参数'(1,)'和关键字参数' {}'未找到。尝试了0种模式:[]

当我尝试使用HttpResponseRedirect

重定向到另一个视图时

这是我的urls.py

    url(r'^documentation/([0-9])/$', views.documents, name='documentation'),

这里是我的views.py

def view1(request):

  if request.method == 'POST':
      profe = request.POST.get('value')

      a = value.encode('ascii', 'ignore')
      b = int(a)
      return HttpResponseRedirect(reverse('documentation', args=(b,)))

  else:

      return render(request, "anhtml.html", info)

def documents(request,valor):
      ...something...
      return render(request, "anotherhtml.html", ..something..)

由于

模板(anhtml.html)

...
    <form method="POST" action="">
        {% csrf_token %}
        {% for p in ps %}
        <tr>
            <td><button id="boton1" button type="submit" name = "valor" value ="{{p.idp}}" class="btn btn-success btn-sm">{{p.nombre}} {{p.apellido}}</button>
            </td>
            <td>algo</a> </td>
        </tr>
        {%endfor%}
    </form>

1 个答案:

答案 0 :(得分:0)

我认为问题不在于HttpResponseRedirect,而在于调用reverse()。

当你传递args时,你应该使用列表符号来表示值:

return HttpResponseRedirect(reverse('documentation', args=[b]))

这应该有帮助,至少。