访问Django中的子目录模块

2024-10-01 13:27:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在启动一个非常简单的Django应用程序。我已经读完了关于djangoproject.com现在我正在建立我的网站。然而,我有麻烦让我的网址路由工作。我的目录结构是

/dartagnan
--/menu
   __init__.py
   admin.py
   models.py
   urls.py
   views.py
__init__.py
settings.py
urls.py

我的模型在工作,我已经(有)的管理和运行。我添加了菜单/url

from django.conf.urls import patterns, url
from dartagnan.menu import views


urlpatterns = patterns('',
    url(r'^$', views.index, name='index')
)

我安装的应用程序包括bot'dartagnan'和'dartagnan.menu菜单'

我更新了顶层网址.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

Tags: djangoinpyenvbaselibsitecontrib