【问题标题】:django redirect url with parameterdjango 带参数的重定向 url
【发布时间】:2014-12-09 03:04:21
【问题描述】:

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

我想改用id number in database(Item.objects.all()) 重定向到 url,例如: 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">

【问题讨论】:

  • 也许你的意思是使用 kwargs={'item' : item} 而不是 args。但是请注意,如果您在 url 定义中使用命名参数,那么您的 kwarg 名称将需要匹配。又名:kwargs={'result' : item}
  • 我认为总的来说,您可能会有些困惑,因为代码似乎没有多大意义并且存在一些问题。与其发布一堆代码,你能指定你想要做什么吗?

标签: python django


【解决方案1】:

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

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

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

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

您也可以像这样在views.py 中访问result

def thumb(request, result):
    print result

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-23
    • 2014-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-08
    • 1970-01-01
    • 2022-07-01
    相关资源
    最近更新 更多