2013-07-26 58 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.") 
相关问题