之前正在工作的我的网站突然开始打破错误
“在/处不正确地配置 包含的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,以便识别网址。)这是ajax.py。
from django.conf.urls.defaults import *
urlpatterns = patterns('',
(r'^star/(?P<object_id>\d+)$', 'resume.students.ajax-calls.star'),
)
任何人都知道什么是错的?这让我发疯了。
谢谢,
答案 0 :(得分:55)
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
解决了问题:这推迟了网址的反转,直到在运行时首次需要它为止。
道德:如果您需要在应用程序启动前撤消,请始终使用reverse_lazy
。
答案 1 :(得分:27)
检查模式是否包含指向不存在的模块或没有urlpatterns
成员的模块的include语句。我看到你有include('urls.ajax')
可能不正确。它应该是ajax.urls
吗?
答案 2 :(得分:2)
在我的情况下,我在部署期间遇到此错误。 Apache一直给我#34; AH01630:服务器配置拒绝了客户端&#34;错误。 这表明apache配置有问题。为了帮助解决问题,当我看到这个错误时,我在settings.py中打开了Debug = True。
最后,我不得不在apache config中的静态文件配置中添加一个新指令。当静态文件无法访问且django设置中的Debug设置为true时,此错误以某种方式被触发。
答案 3 :(得分:1)
尝试使用RedirectView和url中的参数进行反向(和reverse_lazy)时出现此错误。违规代码如下所示:
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', ]))),
修复是在urlpatterns中使用此url:
from django.views.generic import RedirectView
url(r'^(?P<location_id>\d+)/$', RedirectView.as_view(url='/statistics/dailyreport/%(location_id)s/')),
ANSWER :修复程序,您仍然可以使用网址格式的名称:
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'),
....
)
答案 4 :(得分:0)
就我而言,我遇到以下错误:
配置不正确:所包含的URLconf中似乎没有任何模式。如果您在文件中看到有效的模式,则说明问题可能是由循环导入引起的。
URL模式有效,但是问题是由错字引起的导入错误。我键入的是restframework
而不是rest_framework
。
答案 5 :(得分:0)
注意:由于某种原因,对我来说,保存另一个文件后,该错误也消失了。因此,第一次出现错误时,我保存了一个文件,其中在forms.py
文件中指定了错误的小部件:
extra_field = forms.CharField(widget=forms.TextField())
代替
extra_field = forms.CharField(widget=forms.TextInput())
将其更改为正确的版本(TextInput)并保存forms.py文件后,该错误仍在我的控制台中显示。保存另一个文件(例如models.py)后,错误消失了。
答案 6 :(得分:0)
在您的应用中检查正确的变量名(如果为“
urlpatterns
”或其他任何内容。 改名对我有帮助
答案 7 :(得分:0)
如果发现有任何卸载的模块,请在views.py中检查导入的模块,然后从views.py文件中删除该模块。 对我来说是修复