2013-07-26 57 views
5

過去幾天我一直在試圖學習Django,但最近我偶然發現了一個我似乎無法解決的問題。在完成Django自己編寫第一個應用程序的教程後,我決定再次通過它。直到現在,我會替換一切,以適應我正在構建的原始應用程序的要求。Django:'模塊'對象沒有屬性'索引'

所以,一切都很順利,直到我到部分3.當我嘗試加載http://localhost:8000/lru/我收到以下錯誤信息:

AttributeError at /lru/ 
'module' object has no attribute 'index' 

回溯:

Internal Server Error: /favicon.ico 
Traceback (most recent call last): 
    File "/Library/Python/2.7/site-packages/django/core/handlers/base.py", line 92, in get_response 
    response = middleware_method(request) 
    File "/Library/Python/2.7/site-packages/django/middleware/common.py", line 69, in process_request 
    if (not urlresolvers.is_valid_path(request.path_info, urlconf) and 
    File "/Library/Python/2.7/site-packages/django/core/urlresolvers.py", line 551, in is_valid_path 
    resolve(path, urlconf) 
    File "/Library/Python/2.7/site-packages/django/core/urlresolvers.py", line 440, in resolve 
    return get_resolver(urlconf).resolve(path) 
    File "/Library/Python/2.7/site-packages/django/core/urlresolvers.py", line 319, in resolve 
    for pattern in self.url_patterns: 
    File "/Library/Python/2.7/site-packages/django/core/urlresolvers.py", line 347, in url_patterns 
    patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module) 
    File "/Library/Python/2.7/site-packages/django/core/urlresolvers.py", line 342, in urlconf_module 
    self._urlconf_module = import_module(self.urlconf_name) 
    File "/Library/Python/2.7/site-packages/django/utils/importlib.py", line 35, in import_module 
    __import__(name) 
    File "/Users/oyvindhellenes/Desktop/Sommerjobb 2013/mysite/mysite/urls.py", line 10, in <module> 
    url(r'^lru/', include('lru.urls', namespace="lru")), 
    File "/Library/Python/2.7/site-packages/django/conf/urls/__init__.py", line 25, in include 
    urlconf_module = import_module(urlconf_module) 
    File "/Library/Python/2.7/site-packages/django/utils/importlib.py", line 35, in import_module 
    __import__(name) 
    File "/Users/oyvindhellenes/Desktop/Sommerjobb 2013/mysite/lru/urls.py", line 6, in <module> 
    url(r'^$', views.index, name='index') 
AttributeError: 'module' object has no attribute 'index' 

我的代碼:

views.py

from django.http import HttpResponse 

def index(request): 
    return HttpResponse("Hello, world. You're at the poll index.") 

LRU/urls.py

from django.conf.urls import patterns, url 

from lru import views 

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

的mysite/urls.py

from django.conf.urls import patterns, include, url 

from django.contrib import admin 
admin.autodiscover() 

urlpatterns = patterns('', 
    url(r'^polls/', include('polls.urls', namespace="polls")), 
    url(r'^admin/', include(admin.site.urls)), 
    url(r'^lru/', include('lru.urls', namespace="lru")), 
) 

我的文件夾結構如下所示:

mysite/ 
    lru 
    templates 
    polls 
    manage.py 
    mysite 

lru/ 
    templates 
    urls.py 
    admin.py 
    __init__.py 
    models.py 
    tests.py 
    views.py 

這很奇怪,因爲我正是因爲做了一切我在「民意調查」例子中做過「turtorial」。只需更換名稱。當我在mysite/urls.py中註釋掉url(r'^lru/', include('lru.urls', namespace="lru")),,然後http://localhost:8000/polls/工作正常,但我似乎無法讓/ lru工作。

這真的讓我很難受,所以任何形式的幫助都會讓人感激!

編輯:加滿回溯

+0

錯誤發生在哪個文件和行? –

+0

你能展示完整的追溯? –

回答

3

做這一點:

from lru.views import * 

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

from lru import views 

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

我希望這有助於。

+0

這解決了我的問題。謝謝! 但是我不明白爲什麼/民意調查沒有導入...... –

+0

我認爲等待一天之前將答案標爲正確是個好主意,因爲即使他們似乎解決了問題,答案有時並不是最理想的。在這個特定的答案中,我不喜歡第一個解決方案中的'import *'(這是不好的做法),我不明白爲什麼在第二個解決方案中需要'from lru import views'語句。 –

+0

你可能沒錯。我新來的,所以不知道規範呢。 至於導入語句('從lru導入視圖')。我得到'NameError在/ lru/ 名稱的'意見'未定義' 如果我刪除它,所以我想它的需要。 –

1

url()第二個參數應該是字符串,安韋我會改變lru/urls.py到:

from django.conf.urls import patterns, url 

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

希望它能幫助!

1

將urls.py模塊導入到您的視圖中。喜歡這個;

from django.http import HttpResponse 
from . import urls 

def index(request): 
    return HttpResponse("Hello, world. You're at the poll index.") 
相關問題