ImportError at / No module named simple Django Version: 1.5.dev20120710212642
J’ai installé la dernière version de django. j’utilise
from django.views.generic.simple import redirect_to
dans mes urls.py. Qu’est-ce qui ne va pas? Est-ce déconseillé?
Utilisez des vues basées sur des classes au lieu de redirect_to
car ces vues génériques basées sur les fonctions sont obsolètes.
Voici un exemple simple d’utilisation de vues basées sur des classes
from django.conf.urls import patterns, url, include from django.views.generic import TemplateView urlpatterns = patterns('', (r'^about/', TemplateView.as_view(template_name="about.html")), )
Mettre à jour
Si quelqu’un veut redirect vers une URL, utilisez RedirectView .
from django.views.generic import RedirectView urlpatterns = patterns('', (r'^one/$', RedirectView.as_view(url='/another/')), )
cela devrait fonctionner
from django.conf.urls import patterns from django.views.generic import RedirectView urlpatterns = patterns('', url(r'some-url', RedirectView.as_view(url='/another-url/')) )
Oui, les anciennes vues génériques basées sur les fonctions étaient obsolètes au 1.4. Utilisez plutôt les vues basées sur les classes.
Et pour l’enregistrement (aucun exemple pertinent actuellement dans la documentation), utiliser RedirectView avec des parameters:
from django.conf.urls import patterns, url from django.views.generic import RedirectView urlpatterns = patterns('', url(r'^myurl/(?P\d+)$', RedirectView.as_view(url='/another_url/%(my_id)s/')), )
Veuillez noter que bien que le regex recherche un nombre ( \d+
), le paramètre est passé sous forme de chaîne ( %(my_id)s
).
Ce qui n’est toujours pas clair, c’est comment utiliser RedirectView
avec template_name
dans urls.py