2012-07-11 17 views
62
ImportError at/
No module named simple 

Django Version: 1.5.dev20120710212642 

Instalé la última versión de django. Estoy usandoError "Sin módulo nombrado simple" en Django

from django.views.generic.simple import redirect_to 

in my urls.py. ¿Qué está mal? ¿Está desaprobado?

Respuesta

126

Use class-based views en lugar de redirect_to ya que estas vistas genéricas basadas en funciones se han desaprobado.

aquí es simple ejemplo de uso puntos de vista basado en la clase

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")), 
) 

actualización

Si alguien quiere volver a dirigir a una dirección URL, el uso RedirectView.

from django.views.generic import RedirectView 

urlpatterns = patterns('', 
    (r'^one/$', RedirectView.as_view(url='/another/')), 
) 
+6

Gracias por este ejemplo. Acabamos de actualizar a 1.5 e inmediatamente obtuvimos errores con redirect_to y direct_to_template. Upvoted. – commadelimited

5

Sí, las antiguas vistas genéricas basadas en funciones estaban en desuso en 1.4. Use las vistas basadas en clase en su lugar.

+2

¿Qué puedo usar en lugar de redirect_to? – Burak

+1

@Burak, ¿qué tal RedirectView.as_view (url = '/ another-url /') como se indicó anteriormente? – Massagran

52

esto debería funcionar

from django.conf.urls import patterns 
from django.views.generic import RedirectView 

urlpatterns = patterns('', 
    url(r'some-url', RedirectView.as_view(url='/another-url/')) 
) 
+1

Gracias por este ejemplo. Acabamos de actualizar a 1.5 e inmediatamente obtuvimos errores con redirect_to y direct_to_template. Upvoted. – commadelimited

+2

¡Gracias! ¡Funciona de maravilla! En realidad, ESTA es la respuesta correcta a la pregunta. La respuesta aceptada no es un reemplazo para redirect_to. –

2

Y para que conste (sin ejemplo relevante actualmente en la documentación), para usar RedirectView con parámetros:

from django.conf.urls import patterns, url 
from django.views.generic import RedirectView 


urlpatterns = patterns('', 
    url(r'^myurl/(?P<my_id>\d+)$', RedirectView.as_view(url='/another_url/%(my_id)s/')), 
) 

Tenga en cuenta que a pesar de las miradas de expresiones regulares para un número (\d+), el parámetro se pasa como una cadena (%(my_id)s).

Lo que todavía no está claro es cómo usar RedirectView con template_name en urls.py.

Cuestiones relacionadas