django使用参数重定向url

时间:2014-12-09 03:04:21

标签: python django

当用户点击make thumbnail按钮时,它会在视图中调用def thumb 然后渲染到http://127.0.0.1:8000/upload/thumb

我想更改为重定向到数据库中的id number(Item.objects.all())的网址,如: http://127.0.0.1:8000/upload/thumb/123

但是没有得到它。 请帮帮我。非常感谢你。

我的代码:

urls.py

urlpatterns = patterns('', 
    url(r'^$', views.background, name='background'),
    url(r'^thumb/(?P<result>\d+)$', views.thumb, name='thumb'),

views.py

def thumb(request,result):
    if request.method=="POST":
        photoid = request.POST['photoid']
        photowidth = request.POST['photowidth']
        item=Item.objects.filter(id=photoid) 
        return redirect(reverse('imageupload:thumb',kwargs={'result':photoid,'item':item }))

return HttpResponseRedirect(reverse('imageupload:background'))

模板:

  <form action="{% url 'imageupload:thumb'  i.id %}" method="POST" id="create_post">

1 个答案:

答案 0 :(得分:3)

使用命名参数时,您需要这样做:

return redirect(reverse('imageupload:thumb',kwargs={'result':item}))

在您的forms.py中,您还需要将action修改为:

action="{% url 'imageupload:thumb' result %}"

您还可以result访问views.py中的def thumb(request, result): print result

{{1}}