Django HttpResponsePermanentRedirect не обрабатывать мое мнение - PullRequest
0 голосов
/ 03 декабря 2009

Если я поставлю это на мой взгляд:

<code>if slug == 'old-path':
        return HttpResponsePermanentRedirect('new-path')
он пропускает мой просмотр в режиме slugbase и возвращает 404.
Как мне легко вернуть 301 и «обработать» мой вид, чтобы я не получил 404?

EDIT
Комментарий @Pydev UA был правильным ответом в этом случае, но я оценил подробный ответ Джона Дебса, который дал мне подсказку, чтобы посмотреть на названные URL, о которых я не знал. Спасибо всем.

1 Ответ

2 голосов
/ 03 декабря 2009

Добавьте from django.core.urlresolvers import reverse в свой список импорта и попробуйте этот бит кода:

if slug == 'old-path':
    return HttpResponsePermanentRedirect(reverse('new-path'))

Проблема, с которой вы столкнулись, заключалась в том, что HttpResponsePermanentRedirect() нужен путь, но вы предоставили ему слаг.

reverse() будет искать по вашим именованным URL строку, которую вы указали, и вернет путь, который затем можно будет перенаправить на правильный путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...