2010-06-10 15 views
27

Mi sitio web, que estaba trabajando antes, de repente empezó a romper con el errorDjango - El incluida URLconf no tiene ningún patrones en ella

"ImproperlyConfigured en/ La URLconf incluida resume.urls no tiene patrones en él "

La base del proyecto se llama reanudar. En settings.py he configurado

ROOT_URLCONF = 'resume.urls' 

Aquí está mi resume.urls, que se encuentra en el directorio raíz del proyecto.

from django.conf.urls.defaults import * 

# Uncomment the next two lines to enable the admin: 
from django.contrib import admin 
admin.autodiscover() 

urlpatterns = patterns('', 
    # Example: 
    # (r'^resume/', include('resume.foo.urls')), 

    # Uncomment the admin/doc line below and add 'django.contrib.admindocs' 
    # to INSTALLED_APPS to enable admin documentation: 
    (r'^admin/doc/', include('django.contrib.admindocs.urls')), 

    # Uncomment the next line to enable the admin: 
    (r'^admin/', include(admin.site.urls)), 

    (r'^accounts/login/$', 'django.contrib.auth.views.login'), 


    #(r'^employer/', include(students.urls)), 

    (r'^ajax/', include('urls.ajax')), 
    (r'^student/', include('students.urls')), 
    (r'^club/(?P<object_id>\d+)/$', 'resume.students.views.club_detail'), 
    (r'^company/(?P<object_id>\d+)/$', 'resume.students.views.company_detail'), 
    (r'^program/(?P<object_id>\d+)/$', 'resume.students.views.program_detail'), 
    (r'^course/(?P<object_id>\d+)/$', 'resume.students.views.course_detail'), 
    (r'^career/(?P<object_id>\d+)/$', 'resume.students.views.career_detail'), 

    (r'^site_media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': 'C:/code/django/resume/media'}), 

) 

Tengo una carpeta llamada urls y un archivo ajax.py dentro. (También creé un en blanco init .py en la misma carpeta para que se reconozcan las URL.) Esto es ajax.py.

from django.conf.urls.defaults import * 

urlpatterns = patterns('', 
    (r'^star/(?P<object_id>\d+)$', 'resume.students.ajax-calls.star'), 
) 

¿Alguien sabe qué pasa? Esto me está volviendo loca.

Gracias,

Respuesta

24

un chequeo de patrones para incluyen declaraciones que apuntan a los módulos que no existen o módulos que no tienen un miembro urlpatterns. Veo que tiene un include('urls.ajax') que puede no ser correcto. ¿Debería ser ajax.urls?

+0

Acepto que es probable que sea el problema. –

+0

Edité mi publicación original para incluir el código de ajax.py. También traté de comentar que incluye: aún no hay dados. – unsorted

+6

No puede tener un 'urls.py' y un directorio llamado' urls' en el mismo paquete. Si quieres tener 'resume.urls' y' resume.urls.ajax', entonces necesitarás mover todo el contenido de 'urls.py' en' urls/__ init __. Py' y eliminar 'urls.py 'archivo. – AdmiralNemo

40

TL; DR: Es probable que utilizar reverse_lazy() en lugar de reverse()

Si su urls.py importa una visión basada en la clase que utiliza reverse(), obtendrá este error; usando reverse_lazy() lo arreglará.

Para mí, el error

Los project.urls incluidos URLconf no tiene ningún patrón en ella

echaron porque:

  • project.urls importados app.urls
  • app.urls importado app.views
  • app.views tenía una vista basada en la clase que utiliza reverse
  • reverse importaciones project.urls, resultando en una dependencia circular.

Uso reverse_lazy en lugar de reverse resuelto el problema: se pospuso la inversión de la dirección URL hasta que fue necesario en primer lugar en tiempo de ejecución.

Moral: Siempre use reverse_lazy si necesita revertir antes de que la aplicación comience.

+1

Todavía estoy recibiendo este problema en Django 1.6.5. Sucede cuando agrego esta línea a una DeleteView: 'success_url = reverse_lazy ('client_list')' y me detengo cuando codigo la URL :( – CpILL

2

En mi caso, recibí este error durante la implementación. Apache me siguió dando el error "AH01630: cliente denegado por la configuración del servidor". Esto indicó que estaba mal con la configuración de Apache.Para ayudar a solucionar problemas, activé Debug = True en settings.py cuando vi este error.

Al final tuve que agregar una nueva directiva a la configuración de archivos estáticos dentro de la configuración de Apache. Cuando los archivos estáticos no eran accesibles y Debug en la configuración django se configuraba en true, este error se activaba de alguna manera.

1

Recibí este error al intentar revertir (y reverse_lazy) usando RedirectView y los parámetros de la url. El código erróneo se veía así:

from django.views.generic import RedirectView 
from django.core.urlresolvers import reverse 
url(r'^(?P<location_id>\d+)/$', RedirectView.as_view(url=reverse('dailyreport_location', args=['%(location_id)s', ]))), 

La solución es utilizar esta URL en urlpatterns:

from django.views.generic import RedirectView 
url(r'^(?P<location_id>\d+)/$', RedirectView.as_view(url='/statistics/dailyreport/%(location_id)s/')), 

RESPUESTA: La solución por lo que aún puede utilizar el nombre del patrón de URL:

from django.core.urlresolvers import reverse 
from django.http import HttpResponseRedirect 
urlpatterns = patterns('', 
    .... 
    url(r'^(?P<location_id>\d+)/$', lambda x, location_id: HttpResponseRedirect(reverse('dailyreport_location', args=[location_id])), name='location_stats_redirect'), 
    .... 
) 
Cuestiones relacionadas