HttpResponseRedirect网址重置

时间:2013-12-19 04:33:13

标签: python django python-2.7 django-forms django-views

伙计这很简单我在更新CRUD中的项目时使用HttpResponseRedirect,

return HttpResponseRedirect('catalog/'+category.slugc+'/product/')

我得到的网址是:localhost:8000 / catalog / product / 1 / catalog / snorkels / product /

我需要:localhost:8000 / catalog / snorkels / product /

任何人都可以帮助我!

2 个答案:

答案 0 :(得分:2)

您忘记了前置/

更改

return HttpResponseRedirect('catalog/'+category.slugc+'/product/')

return HttpResponseRedirect('/catalog/'+category.slugc+'/product/')

另一种(更好的方法)是:

return HttpResponseRedirect(reverse('url-name', args=(category.slugc, ))) #or reverse('myapp.views.view_name', args=(category.slugc, ))

答案 1 :(得分:1)

首先,在urls.py中命名您的网址格式:

url(r'^catalog/(?P<slug>\w+)/product/', 'some.view', name='slug-view')

然后,在您的观看中,执行以下操作:

from django.shortcuts import redirect

return redirect('slug-view', slug=category.slugc)