2011-11-10 17 views
52

Antes de escribir en urls.py, mi código ... todo funcionó a la perfección. Ahora tengo problemas, no puedo ir a mi sitio. "No se puede importar patrones de nombre"no puede importar patrones de nombre

Mi urls.py es:

from django.conf.urls import patterns, include, url 

Dijeron lo que el error está en algún lugar aquí.

+0

¿Puede mostrarnos el error completo y el rastro? –

+3

Tuve el mismo problema al seguir la guía "escribe tu primera aplicación django". Cuando moví los patrones de URL del urls.py principal a polls.urls.py. El problema se resolvió después de cambiar "de los patrones de importación de django.conf.urls, include, url" con "de django.conf.urls.defaults import * " – qliq

+2

Tuve el mismo problema al implementar en mi servidor de transferencia. El problema desapareció. Actualicé de django 1.3.1 a 1.4 ejecutando sudo pip install --upgrade django –

Respuesta

18

No necesita esas importaciones. La única cosa que necesita en su urls.py (para empezar) es:

from django.conf.urls.defaults import * 

# This two if you want to enable the Django Admin: (recommended) 
from django.contrib import admin 
admin.autodiscover() 

urlpatterns = patterns('', 
    url(r'^admin/', include(admin.site.urls)), 
    # ... your url patterns 
) 

NOTA: Esta solución fue diseñada para Django < 1.6. Este fue realmente el código generado por Django. Para una versión más nueva, vea la respuesta de Jacob Hume.

+2

No funciona para mí. – Hunsu

+30

import * se considera una mala práctica – llazzaro

+2

de django.conf.urls.defaults importa * se elimina de djnago1.6 – neelima

17

Sí:

from django.conf.urls.defaults import ... # is for django 1.3 
from django.conf.urls import ...   # is for django 1.4 

me encontré con este problema también.

+0

¿Por qué no se acepta esto? – Alexxio

0

lo resolví por clonación de mi proyecto directamente en Eclipse de GIT,

principio estaba clonación en la ubicación específica en el sistema de archivos y después se importa como proyecto existente en Eclipse.

124

A partir de Django 1.10, se ha eliminado el módulo patterns (había quedado en desuso desde 1.8).

Por suerte, debería ser una edición sencilla de eliminar el código erróneo, ya que la urlpatternsshould now be stored in a plain-old list:

urlpatterns = [ 
    url(r'^admin/', include(admin.site.urls)), 
    # ... your url patterns 
] 
+1

, pero ¿cómo puedo agregar 'MEDIA_ROOT' y' MEDIA_URL' a los patrones de la url –

+1

Cómo agregar URL de medios: https://docs.djangoproject.com/en/1.10/howto/static-files/#serving-static-files -during-development – Raptor

+2

Para una mejor documentación y justificación de este cambio en Django 1.8, consulte https://docs.djangoproject.com/en/1.10/releases/1.8/#django-conf-urls-patterns – nealmcb

9

módulo de patrones no se admite la mina .. trabajaron con esto.

from django.conf.urls import * 
from django.contrib import admin 
admin.autodiscover() 

urlpatterns = [ 
    url(r'^admin/', include(admin.site.urls)), 
    # ... your url patterns 
] 
4

Este es el código que funcionó para mí. Mi versión de Django es 1.10.4 último módulo del patrón

from django.conf.urls import url, include 

from django.contrib import admin 
admin.autodiscover() 

urlpatterns = [ 
    # Examples: 
    # url(r'^$', 'blog.views.home', name='home'), 
    # url(r'^blog/', include('blog.urls')), 

    url(r'^admin/', include(admin.site.urls)), 
] 
2

en no disponible en Django 1.8. Por lo tanto, debe eliminar el patrón de su importación y hacer algo similar a lo siguiente:

from django.conf.urls import include, url 
from django.contrib import admin 

admin.autodiscover() 

urlpatterns = [     
    # here we are not using pattern module like in previous django versions 
    url(r'^admin/', include(admin.site.urls)), 
] 
Cuestiones relacionadas