Django - 包含的urlconf中没有任何模式

uns*_*ted 40 python django

之前正在工作的我的网站突然开始打破错误

"在/包含urlconf resume.urls不正确的配置中没有任何模式"

项目基础称为简历.在settings.py我已设置

ROOT_URLCONF = 'resume.urls'
Run Code Online (Sandbox Code Playgroud)

这是我的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'}),

)
Run Code Online (Sandbox Code Playgroud)

我有一个名为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'),
)
Run Code Online (Sandbox Code Playgroud)

谁知道什么是错的?这真让我抓狂.

谢谢,

Aur*_*raf 60

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如果你需要在应用程序启动之前撤消,请务必使用.


Adm*_*emo 28

检查模式是否包含指向不存在的模块或没有urlpatterns成员的模块的include语句.我看到你有一个include('urls.ajax')可能不正确的.应该是ajax.urls吗?

  • 你不能在同一个包中有一个`urls.py`和一个名为`urls`的目录.如果你想要`resume.urls`和`resume.urls.ajax`,那么你需要将`urls.py`的所有内容移动到`urls/__ init __.py`并删除`urls.py `档案. (8认同)

小智 5

检查您的应用程序中的正确变量名称,如果它是“

网址模式

“或其他任何东西。更正名称对我有帮助