2012-10-12 2 views
3

Comment puis-je rediriger toutes les URL d'un modèle particulier vers un autre?Redirection dans les URL Django

Description:

Je veux être en mesure de rediriger comme suit:

/pattern1/step1/ to /pattern2/step1/ 
/pattern1/step2/ to /pattern2/step2/ 
/pattern1/continue/ to /pattern2/continue/ 

Quelle est la meilleure façon de le faire dans les modèles d'URL Django?

Répondre

5

RedirectView fonctionne. Capturez le reste du chemin avec un kwarg nommé. Il sera passé en RedirectView.get_redirect_url, vous pouvez donc l'interpoler dans l'URL que vous fournissez.

url(r'^pattern1/(?P<url>.+)$', RedirectView.as_view(url="/pattern2/%(url)s")), 
#     ^           ^
#     | this url       appears here | 
0

Vous pouvez utiliser redirect_to vue générique et ajouter urls de redirection dans urls.py comme:

from django.views.generic.simple import redirect_to 

urlpatterns = patterns('', 
    ('^pattern1/step1/$', redirect_to, {'url': '/pattern2/step1/'}), 
    #any more patters. 
) 

Voici les documents: Generic view redirect_to. Ceux-ci peuvent également prendre les paramètres.

0

Les redirections pouvaient également être gérées au niveau du serveur Web.

+0

Oui. J'ai pensé à ça. Mais comme ce serait un changement fréquent, je voulais vérifier s'il y avait un moyen de le faire en utilisant Django lui-même. :) –