Django URL 重定向后没有改变
Django URL does not change after Redirection
我正在通过一本在线书籍学习 Django 1.7 "Tango with Django 1.7"。
本教程创建了一个 "Link Directory",其中包含类别和与类别相关的 Web 链接。
当我将页面添加到类别时说 "django" 使用以下 url:
http://localhost:8000/rango/category/django/add_page/
我使用以下 return 语句成功执行页面添加后重定向(重定向到类别页面)
return category(request, category_name_slug)
虽然重定向成功,但浏览器中的 url 没有更改为
http://localhost:8000/rango/category/django/
还是一样
http://localhost:8000/rango/category/django/add_page/
我也应该怎样改变 url。
提前致谢。
调用视图 category(request, category_name_slug)
实际上不是重定向。要请求,您应该使用 HttpResponseRedirect()
并执行类似
的操作
return HttpResponseRedirect(reverse("<your_category_url>",
<kw_params_of_your_url>))
您没有重定向。 return category(request, category_name_slug)
只是 returns 视图的响应,没有任何重定向。
使用redirect
快捷方式:
from django.shortcuts import redirect
return redirect('name-of-category-url', category_name_slug)
顺便说一句,如果您的 Category
模型有 get_absolute_url()
方法,那么您可以重定向到所需的类别实例而不会弄乱 url names/parameters:
return redirect(category)
我正在通过一本在线书籍学习 Django 1.7 "Tango with Django 1.7"。
本教程创建了一个 "Link Directory",其中包含类别和与类别相关的 Web 链接。
当我将页面添加到类别时说 "django" 使用以下 url:
http://localhost:8000/rango/category/django/add_page/
我使用以下 return 语句成功执行页面添加后重定向(重定向到类别页面)
return category(request, category_name_slug)
虽然重定向成功,但浏览器中的 url 没有更改为
http://localhost:8000/rango/category/django/
还是一样
http://localhost:8000/rango/category/django/add_page/
我也应该怎样改变 url。
提前致谢。
调用视图 category(request, category_name_slug)
实际上不是重定向。要请求,您应该使用 HttpResponseRedirect()
并执行类似
return HttpResponseRedirect(reverse("<your_category_url>",
<kw_params_of_your_url>))
您没有重定向。 return category(request, category_name_slug)
只是 returns 视图的响应,没有任何重定向。
使用redirect
快捷方式:
from django.shortcuts import redirect
return redirect('name-of-category-url', category_name_slug)
顺便说一句,如果您的 Category
模型有 get_absolute_url()
方法,那么您可以重定向到所需的类别实例而不会弄乱 url names/parameters:
return redirect(category)