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开发,所以非常感谢你的帮助。
2 个回答
2
试试这个
return HttpResponseRedirect(reverse('affiche_all', devise=('EURO',)))
4
你需要用 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 模式,它接受一个名为 'devise' 的关键字参数,像这样:
from django.conf.urls import url, patterns
urlpatterns = patterns('your_app.views',
url(r'^some-path/(?P<devise>[-\w]+)/$', 'affiche_all', name='affiche_all'),
)
这个命名参数会寻找一个或多个单词和连字符,像是一个网址的简化版。你可能想根据自己的需要来修改它。