2013-07-26 37 views
5

私は過去数日間Djangoを学んできましたが、最近私は修正できないような問題に遭遇しました。あなたの最初のアプリを書いているDjango自身のチュートリアルを終えた後、もう一度やり直すことにしました。今は私が構築していた元のアプリの要件に合わせてすべてを置き換えるだけです。Django: 'module'オブジェクトに 'index'属性がありません

私はhttp://localhost:8000/lru/をロードしようとすると、私は次のエラーメッセージ取得部3に着くまで、だから、すべてがうまくいった:

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') 
) 

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 

私は正確に同じすべてをやったので、それは奇妙です私は "世論調査"の例で飼育しました。ちょうど名前を置き換えます。私が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') 
) 

私はこのことができます願っています。 url()

+0

これは私の問題を解決しました。ありがとうございました! 私はなぜ/ポーリングをインポートせずに動作するのかわかりません。 –

+0

問題を解決しているように見えても答えが最適でない場合もあるので、正しい答えとしてマークする前に1日待つことをお勧めします。この特別な答えでは、最初の解決策では 'import *'が嫌いです(悪い習慣です)。なぜ2番目の解決策で 'from lru import views'文が必要なのか分かりません。 –

+0

おそらく正しいでしょう。私はここに新しいので、まだ規範を知らない。 importステートメント( 'from lru import views')です。私はNameErrorを/ lru/ という名前で 'views'が定義されていません。 私はそれを削除すれば、私は必要と思われます。 –

1

第二引数は、文字列、anwayする必要があります私はに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.") 
関連する問題