在/的ViewDoesNotExist。 Django奇怪的错误

时间:2013-06-27 09:44:00

标签: python django

我第一次遇到这个问题,这非常令人困惑。我刚刚设置了新的django项目,比如我做了10次。但这次不知何故,一旦我启动项目并打开localhost,我就会得到一个奇怪的错误:

ViewDoesNotExist at /
Could not import avicenna.home.views. Parent module avicenna.home does not exist.

avicenna是我的项目名称。和家是应用程序名称..

这是我的urls.py:

from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
  url(r'^$', 'avicenna.home.views', name='home'),
  url(r'^admin/', include(admin.site.urls)),
)

这是我的观点:

from django.template import RequestContext
from django.shortcuts import render_to_response

def home(request):
   return render_to_response('index.html',{},context_instance=RequestContext(request))

这里有什么不妥?这是项目的结构

enter image description here

1 个答案:

答案 0 :(得分:2)

可能你需要改变这个:

url(r'^$', 'avicenna.home.views', name='home'),

url(r'^$', 'home.views.home', name='home'),

因此,根据您更新的帖子:链接到avicenna.home.views是不够的,您需要告诉您引用的是哪个视图。或者,更改您的网址模式,如下所示:

urlpatterns = patterns('home.views',
  url(r'^$', 'home', name='home'),
  url(r'^admin/', include(admin.site.urls)),
)

但无论如何,你需要告诉django应该为每个url模式调用什么视图。此外,manage.py应用已经在avicenna个应用内;如果您键入avicenna.home...,django会在您的第3个avicenna文件夹中查找home模块,但您希望它在裸home模块中查找视图。

不确定这是否完全解决了您的问题,但似乎还有其他内容(在您安装的应用中注册home?)