【发布时间】:2014-09-05 20:44:15
【问题描述】:
我正在研究 official Django tutorial,并使用 Django 版本 1.6.1、Python 2.7.6 稍微调整它以满足我自己的需要。
我正处于它让我映射 URL 的地步,但是当很明显有一个模块包含一个恰当命名的文件时,我不断收到“没有名为 customers.urls 的模块”错误,所以我真的很茫然至于我做错了什么。
我最初的想法是我需要在 root/urls.py 中导入一些与客户相关的东西,但是每次导入的组合都会导致大致相同的错误,并且教程并没有说要这样做。
ROOT_URLCONF = 'taco.urls'(taco 是项目的名称)
我正在使用 manage.py/runserver 运行它,因此我知道没有特殊的 Web 服务器欺骗发生。我已经重启了好几次了。
这些应用程序都已正确注册,正如回溯可以证明的那样。
任何关于我忽略的东西的指针都将不胜感激!
根/urls.py:
from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^customers/', include('customers.urls')),
url(r'^admin/', include(admin.site.urls)),
)
客户/urls.py:
from django.conf.urls import patterns, url;
from customers import views;
urlpatterns = ('',
url(r'^$', views.index, name='index')
);
客户/views.py:
from django.shortcuts import render
from django.http import HttpResponse;
def index(request):
return HttpResponse("Hello");
追溯
Environment:
Request Method: GET
Request URL: http://192.168.3.208:8000/customers/
Django Version: 1.6.1
Python Version: 2.7.6
Installed Applications:
('django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'south',
'taco.customers',
'taco.inventory',
'taco.lookups',
'taco.orders')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware')
Traceback:
File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py" in get_response
99. resolver_match = resolver.resolve(request.path_info)
File "/usr/lib/python2.7/dist-packages/django/core/urlresolvers.py" in resolve
337. for pattern in self.url_patterns:
File "/usr/lib/python2.7/dist-packages/django/core/urlresolvers.py" in url_patterns
365. patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
File "/usr/lib/python2.7/dist-packages/django/core/urlresolvers.py" in urlconf_module
360. self._urlconf_module = import_module(self.urlconf_name)
File "/usr/lib/python2.7/dist-packages/django/utils/importlib.py" in import_module
40. __import__(name)
File "/var/project/taco/taco/urls.py" in <module>
7. url(r'^customers/', include('customers.urls')),
File "/usr/lib/python2.7/dist-packages/django/conf/urls/__init__.py" in include
26. urlconf_module = import_module(urlconf_module)
File "/usr/lib/python2.7/dist-packages/django/utils/importlib.py" in import_module
40. __import__(name)
Exception Type: ImportError at /customers/
Exception Value: No module named customers.urls
【问题讨论】:
-
已添加为“taco.customers”。
-
两件事 1. 我认为您需要在已安装的应用程序中添加
taco。 2.你可能需要在主urls.py做include('taco.customers.urls') -
请不要在 Python 中以分号结束行。
-
@DanielRoseman - 抱歉,有些习惯很难改掉:\
-
你在包
customers中有__init__.py吗?