Erreur «Pas de module nommé simple» dans Django

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