Python重定向到另一个视图

2024-04-25 22:45:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从一个视图重定向到另一个视图并传递数据,但没有机会。 以下是我的代码:

def affiche(request):
    if request.method == 'POST':                                     
        form = AfficheForm(request.POST)
        if form.is_valid():
            Select = form.cleaned_data['Select']
            if Select == '1':
                return redirect('affiche_all', devise='EURO')


def affiche_all(request, devise):
    data = websvc(devise)
    return render_to_response('affiche_all.html', {'data': data},
        RequestContext(request))  

我是django开发公司的新员工,因此我将感谢您的帮助。


Tags: form视图datareturnifrequestdefall
2条回答

试试这个

return HttpResponseRedirect(reverse('affiche_all', devise=('EURO',)))

您需要使用reverse建立URL以重定向到:

from django.urls import reverse
from django.http import HttpResponseRedirect


def affiche(request):
    form = AfficheForm(request.POST or None)
    if request.method == 'POST':     
        if form.is_valid():
            Select = form.cleaned_data['Select']
            if Select == '1':
                url = reverse('affiche_all', args=(),
                    kwargs={'devise': 'EURO'})
                return HttpResponseRedirect(url)

这假设您有一个命名的url模式,该模式接受关键字参数“designe”,如下所示:

from django.conf.urls import url, patterns

urlpatterns = patterns('your_app.views',
    url(r'^some-path/(?P<devise>[-\w]+)/$', 'affiche_all', name='affiche_all'),
)

这个命名参数将查找一个或多个单词并像蛞蝓一样进行催眠。你可能想把它改成适合你的需要。

相关问题 更多 >