Python 在django中访问子目录模块
我正在启动一个非常简单的Django应用程序。我已经在djangoproject.com上运行了教程,并使其正常工作,现在我正在构建我的网站。但是,我的url路由无法正常工作。我的目录结构是Python 在django中访问子目录模块,python,django,Python,Django,我正在启动一个非常简单的Django应用程序。我已经在djangoproject.com上运行了教程,并使其正常工作,现在我正在构建我的网站。但是,我的url路由无法正常工作。我的目录结构是 /dartagnan --/menu __init__.py admin.py models.py urls.py views.py __init__.py settings.py urls.py 我的模型正在工作,我已经让管理员启动并运行了。我添加了带有 from djan
/dartagnan
--/menu
__init__.py
admin.py
models.py
urls.py
views.py
__init__.py
settings.py
urls.py
我的模型正在工作,我已经让管理员启动并运行了。我添加了带有
from django.conf.urls import patterns, url
from dartagnan.menu import views
urlpatterns = patterns('',
url(r'^$', views.index, name='index')
)
我安装的应用程序包括机器人“dartagnan”和“dartagnan.menu”
我更新了顶级URL.py,使其具有
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^menu/', include('menu.urls')),
)
现在,当我尝试访问时,如果说localhost/menu,我会得到错误:
ImportError at /menu
No module named menu.urls
我试过“dartagnan.menu.url”和其他一些变体。我试图找到一个类似的问题来学习,但是如果有人有同样的问题,我对python和django太陌生了,没有意识到他们是一样的
编辑:每个请求,错误跟踪
环境:
Request Method: GET
Request URL: http://127.0.0.1:8000/menu
Django Version: 1.6.5
Python Version: 2.7.5
Installed Applications:
('django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'dartagnan',
'dartagnan.menu')
Installed Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware')
Traceback:
File "/Users/Christopher/dartagnan-base-env/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
88. response = middleware_method(request)
File "/Users/Christopher/dartagnan-base-env/lib/python2.7/site-packages/django/middleware/common.py" in process_request
71. if (not urlresolvers.is_valid_path(request.path_info, urlconf) and
File "/Users/Christopher/dartagnan-base-env/lib/python2.7/site-packages/django/core/urlresolvers.py" in is_valid_path
596. resolve(path, urlconf)
File "/Users/Christopher/dartagnan-base-env/lib/python2.7/site-packages/django/core/urlresolvers.py" in resolve
476. return get_resolver(urlconf).resolve(path)
File "/Users/Christopher/dartagnan-base-env/lib/python2.7/site-packages/django/core/urlresolvers.py" in resolve
337. for pattern in self.url_patterns:
File "/Users/Christopher/dartagnan-base-env/lib/python2.7/site-packages/django/core/urlresolvers.py" in url_patterns
365. patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
File "/Users/Christopher/dartagnan-base-env/lib/python2.7/site-packages/django/core/urlresolvers.py" in urlconf_module
360. self._urlconf_module = import_module(self.urlconf_name)
File "/Users/Christopher/dartagnan-base-env/lib/python2.7/site-packages/django/utils/importlib.py" in import_module
40. __import__(name)
File "/Users/Christopher/Sourcecode/dartagnan/dartagnan/urls.py" in <module>
19. url(r'^menu/', include('menu.urls')),
File "/Users/Christopher/dartagnan-base-env/lib/python2.7/site-packages/django/conf/urls/__init__.py" in include
26. urlconf_module = import_module(urlconf_module)
File "/Users/Christopher/dartagnan-base-env/lib/python2.7/site-packages/django/utils/importlib.py" in import_module
40. __import__(name)
Exception Type: ImportError at /menu
Exception Value: No module named menu.urls
你能显示完整的堆栈跟踪吗。上面的代码看起来是正确的。在最上面的URL中,使用“dartagan.menu.url”而不是“menu.url”,然后再次向我们显示堆栈跟踪。从已安装的应用程序中删除“dartagnan”,它毫无价值。所以当我这么做时,一切都正常了。如果你想把它作为一个答案写在下面,我很乐意接受它,这样,如果其他人在这个问题上绊倒了,他们就会知道该怎么做。