Подтвердить что ты не робот

Django - включенный urlconf не имеет никаких шаблонов в нем

Мой сайт, который работал раньше, неожиданно начал ломаться с ошибкой

Неправильно сконфигурировано в/Включенный urlconf resume.urls не есть какие-то шаблоны в нем

База проекта называется резюме. В settings.py я установил

ROOT_URLCONF = 'resume.urls'

Вот мой файл resume.urls, который находится в корневом каталоге проекта.

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'}),

)

У меня есть папка с именем urls и файл ajax.py внутри. (Я также создал пустой init.py в той же папке, чтобы URL-адреса были распознаны.) Это ajax.py.

from django.conf.urls.defaults import *

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

Кто-нибудь знает, что не так? Это сводит меня с ума.

Спасибо,

4b9b3361

Ответ 1

Проверьте свои шаблоны для операторов include, которые указывают на несуществующие модули или модули, у которых нет члена urlpatterns. Я вижу, что у вас есть include('urls.ajax'), который может быть неправильным. Должно ли оно ajax.urls?

Ответ 2

TL; DR: Вероятно, вам нужно использовать reverse_lazy() вместо reverse()

Если ваш urls.py импортирует представление на основе класса, которое использует reverse(), вы получите эту ошибку; используя reverse_lazy(), исправит его.

Для меня ошибка

Вложенный urlconf project.urls не имеет никаких шаблонов в нем

получил бросок, потому что:

  • project.urls импортировано app.urls
  • app.urls импортировано app.views
  • app.views имел представление на основе класса, которое использовало reverse
  • reverse импортирует project.urls, что приводит к циклической зависимости.

Используя reverse_lazy вместо reverse решила проблему: это отложило обращение вспять URL-адреса до тех пор, пока он не понадобился во время выполнения.

Мораль: всегда используйте reverse_lazy, если вам нужно отменить действие перед запуском приложения.

Ответ 3

В моем случае я получил эту ошибку во время развертывания. Apache продолжал давать мне ошибку "AH01630: клиент, отказавшийся от конфигурации сервера". Это указывало на неправильность конфигурации Apache. Чтобы помочь устранить неполадку, я включил Debug = True в settings.py, когда увидел эту ошибку.

В конце концов, мне пришлось добавить новую директиву в конфигурацию статических файлов внутри конфигурации apache. Когда статические файлы не были доступны, а параметр "Отладка" в настройках django был установлен в true, эта ошибка как-то срабатывала.

Ответ 4

Я получил эту ошибку при попытке изменить (и reverse_lazy) с помощью RedirectView и параметров из URL-адреса. Код нарушения выглядел следующим образом:

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', ]))),

Исправление состоит в том, чтобы использовать этот url в urlpatterns:

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

ANSWER: исправление, чтобы вы все еще могли использовать имя шаблона 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'),
    ....
)

Ответ 5

В моем случае у меня была следующая ошибка:

Неправильно сконфигурировано: похоже, что во включенном URLconf отсутствуют какие-либо шаблоны. Если вы видите в файле действительные шаблоны, возможно, проблема связана с циклическим импортом.

Шаблоны URL были допустимы, но проблема заключалась в ошибке импорта, вызванной опечаткой. Я набрал restframework вместо rest_framework.

Ответ 6

Примечание: по какой-то причине для меня эта ошибка также исчезла после того, как я сохранил другой файл. Поэтому при первом появлении ошибки я сохранил файл, в котором указал неверный виджет в файле forms.py:

extra_field = forms.CharField(widget=forms.TextField())

вместо

extra_field = forms.CharField(widget=forms.TextInput()) 

После изменения правильной версии (TextInput) и сохранения файла forms.py ошибка все еще отображалась в моей консоли. После сохранения другого файла (например, models.py) ошибка исчезла.