我第一次遇到这个问题,这非常令人困惑。我刚刚设置了新的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))
这里有什么不妥?这是项目的结构
答案 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
?)