2015-01-29 4 views
1

Я изучаю Django 1.7 через онлайн-книгу «Танго с Django 1.7».URL-адрес Django не изменяется после перенаправления

В этом учебном пособии создается «Каталог ссылок», в котором есть категории и веб-ссылки, относящиеся к категориям.

Когда я добавить страницу в категорию сказать, «Джанго», используя следующий URL:

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/ 

Что я должен сделать, чтобы изменить URL тоже.

Заранее спасибо.

+0

Это на самом деле помогли мне , Я искал способ НЕ изменить URL. Так и поступало. – user2125853

ответ

2

Вызов вида category(request, category_name_slug) на самом деле не является переадресацией. Для запроса вы должны использовать HttpResponseRedirect() и сделать что-то вроде

return HttpResponseRedirect(reverse("<your_category_url>", 
          <kw_params_of_your_url>)) 
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() метод, то вы можете перенаправить на нужный экземпляр категории без баловаться с URL-адреса имен/параметров:

Смежные вопросы