2013-06-16 28 views
6

Tôi đã gặp sự cố khi làm việc qua hướng dẫn Django, cụ thể là khi thêm nhiều lượt xem hơn vào ứng dụng thăm dò ý kiến. Để tham khảo, đây là phần bắt đầu của phần mà tôi đi lên: https://docs.djangoproject.com/en/1.5/intro/tutorial03/#writing-more-viewsĐiều gì gây ra lỗi này trên phần 3 của hướng dẫn Django?

Trước phần đó, tôi có thể xem chế độ xem số lượt xem/ để hiển thị không có vấn đề gì. Nhưng khi tôi thêm ba quan điểm bổ sung để làm các cuộc thăm dò/views.py cái nhìn như thế này:

def detail(request, poll_id): 
    return HttpResponse("You're looking at poll %s." % poll_id) 

def results(request, poll_id): 
    return HttpResponse("You're looking at the results of poll %s." % poll_id) 

def vote(request, poll_id): 
    return HttpResponse("You're voting on poll %s." % poll_id) 

và sau đó thực hiện các cuộc thăm dò /urls.py cái nhìn như thế này:

from django.conf.urls import patterns, url 

from polls import views 

urlpatterns = patterns('', 
    # ex: /polls/ 
    url(r'^$', views.index, name='index'), 
    # ex: /polls/5/ 
    url(r'^(?P<poll_id>\d+)/$', views.detail, name='detail'), 
    # ex: /polls/5/results/ 
    url(r'^(?P<poll_id>\d+)/results/$', views.results, name='results'), 
    # ex: /polls/5/vote/ 
    url(r'^(?P<poll_id>\d+)/vote/$', views.vote, name='vote'), 
) 

tôi nhận được một lỗi. Là một sang một bên, mysite ROOT_URLCONF tôi được trỏ đến mysite/urls.py mà trông như thế này:

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

from django.contrib import admin 
admin.autodiscover() 

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

Các lỗi mà tôi nhận được là:

Environment: 


Request Method: GET 
Request URL: http://127.0.0.1:8000/polls/34 

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', 
'django.contrib.admin', 
'polls') 
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 "/home/matthew/.virtualenvs/djangopoll/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response 
    92.      response = middleware_method(request) 
File "/home/matthew/.virtualenvs/djangopoll/local/lib/python2.7/site-packages/django/middleware/common.py" in process_request 
    69.    if (not urlresolvers.is_valid_path(request.path_info, urlconf) and 
File "/home/matthew/.virtualenvs/djangopoll/local/lib/python2.7/site-packages/django/core/urlresolvers.py" in is_valid_path 
    551.   resolve(path, urlconf) 
File "/home/matthew/.virtualenvs/djangopoll/local/lib/python2.7/site-packages/django/core/urlresolvers.py" in resolve 
    440.  return get_resolver(urlconf).resolve(path) 
File "/home/matthew/.virtualenvs/djangopoll/local/lib/python2.7/site-packages/django/core/urlresolvers.py" in resolve 
    319.    for pattern in self.url_patterns: 
File "/home/matthew/.virtualenvs/djangopoll/local/lib/python2.7/site-packages/django/core/urlresolvers.py" in url_patterns 
    347.   patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module) 
File "/home/matthew/.virtualenvs/djangopoll/local/lib/python2.7/site-packages/django/core/urlresolvers.py" in urlconf_module 
    342.    self._urlconf_module = import_module(self.urlconf_name) 
File "/home/matthew/.virtualenvs/djangopoll/local/lib/python2.7/site-packages/django/utils/importlib.py" in import_module 
    35.  __import__(name) 
File "/home/matthew/djangopoll/mysite/mysite/urls.py" in <module> 
    8.      url(r'^polls/', include('polls.urls')), 
File "/home/matthew/.virtualenvs/djangopoll/local/lib/python2.7/site-packages/django/conf/urls/__init__.py" in include 
    25.   urlconf_module = import_module(urlconf_module) 
File "/home/matthew/.virtualenvs/djangopoll/local/lib/python2.7/site-packages/django/utils/importlib.py" in import_module 
    35.  __import__(name) 

Exception Type: SyntaxError at /polls/34 
Exception Value: invalid syntax (urls.py, line 9) 

Ngoài ra, sau đây có thể thông tin:

  • Sử dụng Django 1.5
  • Sử dụng P ython 2.7.3
  • Sử dụng Django 1,5 tài liệu
  • Sử dụng VirtualBox
  • Sử dụng virtualenv

Any help is appreciated! Tại sao tôi nhận được lỗi này?

+1

Bạn có thể nhập 'polls.urls' từ trình bao Django không? –

Trả lời

7

Có vẻ như Python không thể nhập polls.urls - đó là lý do tại sao __import__(name) không thành công. "Tên" ở đây sẽ là tên mô-đun của bạn, 'polls.urls'.

Để tìm hiểu lý do tại sao hệ thống không thể nhập polls.urls của bạn, hãy thử nhập tương tác.

$ python manage.py shell 

Python ... blah blah 
... 

> import polls.urls 

Điều này sẽ không thành công, nhưng lần truy nguyên sẽ cung cấp cho bạn manh mối tiếp theo về lỗi của bạn.

Chúc may mắn!

+2

Điều này rất hữu ích, bởi vì tôi đã học cách sử dụng vỏ Django tương tác ... nhưng vấn đề tôi gặp phải là vô lý vô lý. Các traceback bạn đề nghị dẫn tôi nhận ra rằng tôi cần một dấu phẩy sau khi xem đầu tiên trước khi các quan điểm bổ sung tôi thêm vào. Doh! – Matt

+1

Mọi người mắc phải những sai lầm đó. Bạn sẽ cảm thấy thoải mái khi tiến bộ! – orlenko

+0

Điều này cũng giúp tôi sử dụng trình bao tương tác để tìm hiểu xem urls.py django gặp sự cố khi nhập. Lỗi của tôi cũng tương tự như vậy, một dấu ngoặc đơn giản bị thiếu. –

Các vấn đề liên quan