我正在通过在线书“Tango with Django 1.7”学习Django 1.7。
本教程创建一个“链接目录”,其中包含与类别相关的类别和Web链接。
当我使用以下网址向某个类别添加页面时说“django”:
http://localhost:8000/rango/category/django/add_page/
使用以下返回语句
成功执行页面添加后,我重定向(重定向到类别页面)return category(request, category_name_slug)
虽然重定向成功,但浏览器中的网址未更改为
http://localhost:8000/rango/category/django/
并且它保持不变
http://localhost:8000/rango/category/django/add_page/
我该怎么做才能更改网址。
提前致谢。
答案 0 :(得分:2)
调用视图category(request, category_name_slug)
实际上并不是重定向。要求您使用HttpResponseRedirect()
并执行类似
return HttpResponseRedirect(reverse("<your_category_url>",
<kw_params_of_your_url>))
答案 1 :(得分:2)
您没有重定向。 return category(request, category_name_slug)
只返回视图的响应而不进行任何重定向。
使用redirect
快捷方式:
from django.shortcuts import redirect
return redirect('name-of-category-url', category_name_slug)
顺便说一句,如果您的Category
模型有get_absolute_url()
方法,那么您可以重定向到所需的类别实例,而不会弄乱网址名称/参数:
return redirect(category)