您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Django使用参数返回redirect()

Django使用参数返回redirect()

首先,你的URL定义根本不接受任何参数。如果要将参数从URL传递到视图中,则需要在URLconf中定义它们。

其次,还不清楚你对cleaned_data字典会发生什么。别忘了你不能重定向到POST-这是HTTP的局限性,而不是Django-因此你的cleaned_data要么需要是一个URL参数(可怕的),要么是一系列更好的GET参数-因此,URL将采用以下形式:

/link/mybackend/?field1=value1&field2=value2&field3=value3

等等。在这种情况下,URLconf定义中不包括field1,field2和field3,它们可通过查看在视图中request.GET。

因此,你的URLconf将是:

url(r'^link/(?P<backend>\w+?)/$', my_function)

该视图如下所示:

def my_function(request, backend):
   data = request.GET

而相反的是(导入后urllib):

return "%s?%s" % (redirect('my_function', args=(backend,)),
                  urllib.urlencode(form.cleaned_data))

评论后编辑

一直以来,使用重定向和反向操作的全部目的是转到URL-它返回一个Http代码,该代码使浏览器重定向到新URL并进行调用

如果你只想从代码调用视图,则直接执行即可-根本不需要使用反向。

就是说,如果你只想存储数据,那么只需将其放入会话中即可:

request.session['temp_data'] = form.cleaned_data
Go 2022/1/1 18:28:50 有325人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶