2013-04-11 3 views
5

importieren Ich arbeite durch "The Django Book" und ich erhalte die FehlerDjango Fehler: kann nicht Namen current_datetime

Urls.py "kann nicht Namen current_datetime importieren":

from django.conf.urls.defaults import patterns, include, url 
from mysite.views import current_datetime, hello 

urlpatterns = patterns('', 
    ('^hello/$', hello), 
    ('^time/$', current_datetime), 
    (r'^time/plus/(\d{1,2})/$', hours_ahead), 
) 

Meine Ansichten. py:

from django.http import HttpResponse 
import datetime 

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) 

Mein Arbeitsverzeichnis:

./mysite: 
__init__.py manage.py mysite  views.py 

Egal, was ich tue, erhalte ich den gleichen Importfehler in urls.py Linie 2 in Bezug auf CURRENT_TIME:

Environment: 


Request Method: GET 
Request URL: http://localhost:8000/ 

Django Version: 1.5.1 
Python Version: 2.7.3 
Installed Applications: 
('django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.sites', 
'django.contrib.messages', 
'django.contrib.staticfiles') 
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 "/Library/Python/2.7/site-packages/django/core/handlers/base.py" in get_response 
    103.      resolver_match = resolver.resolve(request.path_info) 
File "/Library/Python/2.7/site-packages/django/core/urlresolvers.py" in resolve 
    319.    for pattern in self.url_patterns: 
File "/Library/Python/2.7/site-packages/django/core/urlresolvers.py" in url_patterns 
    347.   patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module) 
File "/Library/Python/2.7/site-packages/django/core/urlresolvers.py" in urlconf_module 
    342.    self._urlconf_module = import_module(self.urlconf_name) 
File "/Library/Python/2.7/site-packages/django/utils/importlib.py" in import_module 
    35.  __import__(name) 
File "/Users/jvieitez/Code/djcode/mysite/mysite/urls.py" in <module> 
    2. from mysite.views import hello, current_datetime, hours_ahead 

Exception Type: ImportError at/
Exception Value: cannot import name current_datetime 
+0

nur um das gleiche zu sagen, Einrückung ist nicht korrekt –

+0

Würde es Ihnen etwas ausmachen, mir zu sagen, wie es aussehen sollte? Ich kopiere es direkt von http://www.djangobook.com/de/2.0/chapter03.html Danke! – Jvieitez

+0

Was ist 'mysite' im Ordner' mysite'? Ist es auch ein Ordner? Wenn ja, enthält es "__init __. Py"? – nymk

Antwort

6

Etwas mit Ihrem Arbeitsverzeichnis nicht stimmt. manage.py und views.py sollten nicht im selben Verzeichnis sein. Ich würde empfehlen, die innere mysite zu etwas anderem umzubenennen, also vermeiden Sie die Verwirrung, und views.py sollte in der inneren mysite Verzeichnis sein. Sie sagten

from mysite.views import current_datetime, hello 

aber views.py ist nicht in der mysite-Verzeichnis. Das ist das Problem.

+0

Bam! Gelöst! Das war das Problem. Vielen Dank! Ich habe die Datei 'views.py' bearbeitet, die sich im äußeren Ordner 'mysite' befindet, und nicht die andere 'mysite', die in dieser Datei enthalten ist. Ich werde sie definitiv umbenennen müssen. Vielen Dank! – Jvieitez

Verwandte Themen