2012-04-13 39 views
0

我试图完成的Djangobook第3章timeit导入错误(djangobook第3章,第2部分,Python版本2.7.2)

Your second view: Dynamic Content当我在浏览器中粘贴http://localhost:8000/time/我得到以下错误:

Django Version: 1.4 
Exception Error: ImportError  
cannot import name current_datetime 
Exception Location: /home/name/Desktop/sc/mysite/mysite/urls.py in <module>, line 2 
python version 2.7.2 

然而,我的views.py和urls.py文件与示例和正确的文件夹是相同的。

我views.py文件

import datetime 
from django.http import HttpResponse 

def hello(request): 
    return HttpResponse("Hello world") 

def current_datetime(request): 
    now = datetime.datetime.now() 
    html = "<html><body>It is now %s.</body></html>" % now 
    return HttpResponse(html) 

我的urls.py文件

from django.conf.urls.defaults import * 
from mysite.views import hello, current_datetime 

urlpatterns = patterns('', 
    ('^hello/$', hello), 
    ('^time/$', current_datetime), 
) 

这是怎么回事错在这里?


(加在原来的职位:) (EDIT 1) 我的目录结构。 (与当前工作目录/home/name/Desktop/sc/mysite

[email protected]:~/Desktop/sc/mysite$ ls -R 
.: 
manage.py mysite views.py views.py~ 

./mysite: 
__init__.py settings.py urls.py urls.pyc wsgi.py 
__init__.pyc settings.pyc urls.py~ views.pyc wsgi.pyc 

(EDIT 2) 我也再次开始使用名称mysite2,而不是mysite全篇,我甚至不能拿到第一部分现在工作:Hello World。': ImportError (djangobook chapter 3, part1, python version 2.7.2)

在我改变脚本中的某些内容以使其工作之前,我无法重新创建我之前完成的工作。

+1

请检查以确保第一个项目中没有\ __ init \ __。py文件mysite dir – okm 2012-04-13 14:53:58

+3

另外,请记住Django Book适用于版本1.0。如果你想遵循1.4的教程,请访问https://docs.djangoproject.com/en/1.4/ – 2012-04-13 15:01:07

+0

我的第一个mysite文件夹中没有__init__.py文件。 – Bentley4 2012-04-13 15:57:40

回答

0

简短的回答是,djangobook不是最新的Django 1.4版本。如果你正确地按照第3章,你会遇到错误。某些文件默认在不同版本的django中的不同位置创建。

见:所以暂且 ImportError (djangobook chapter 3, part1, python version 2.7.2)

这是更好地遵循Django文档。

+0

如果你能以这种方式解决问题,你应该接受你的答案。 – moooeeeep 2012-04-25 11:41:39

1

你的urls.py改成这样(假设你的应用程序被称为应用):

urlpatterns = patterns('', 
    (r'^hello/$', 'app.views.hello'), 
    (r'^time/$', 'app.views.current_datetime'), 
) 

更新:你的项目的基本目录应孔坦空__init__.py文件了。

+0

我试过这个,还是一样的错误。 – Bentley4 2012-04-13 16:18:31

+0

尝试在app apps目录中添加一个空的'__init __。py'文件作为moooeeeep建议。 – skazhy 2012-04-13 16:30:29