将参数发送到视图

时间:2014-08-22 14:09:14

标签: python django django-views

基本上在帖子之后,我想重新渲染另一个视图并向它发送一个参数,但我仍然希望将它指向正确的URL。我不想使用像 /?confirm = true

这样的网址参数

URL:

url(r'^$', 'index', name='home'),

def index(request, confirm=None):
    return ...

我试图发送索引视图参数confirm = True

return redirect('home', kwargs={'confirm':True})

所以这不起作用,因为kwargs想要将URL模式与/ confirm /匹配,但我不想这样做,我只是想尝试向视图发送一些值并从另一个视图中呈现该视图。 / p>

2 个答案:

答案 0 :(得分:1)

如果您不想在网址中传递参数,则需要以其他方式传递参数。唯一真正的方法是使用会话:在后视图中设置会话变量,并在索引中检查它。

def process_post(request, ...):
    ... do whatever ...
    request.session['confirm'] = True
    return redirect('home')


def index(request):
    confirm = request.session.pop('confirm', None)
    if confirm:
        ...

答案 1 :(得分:0)

我不确定我是否理解这个问题。你基本上是想这样做吗?

(r'^your_app_view/(?P<app_value>.+)/$',views.your_view)

然后在your_view中,您可以访问app_value执行您需要的操作并重定向到另一个视图。

您是否在询问如何将该参数传递给第一个视图正在调用的第二个视图?

如果是这样,那么这个SO答案应该对你有帮助。 Django return redirect() with parameters