I had a problem working with the Django tutorial, especially when adding more views to the survey application. For reference, this is the beginning of the section that turns me off: https://docs.djangoproject.com/en/1.5/intro/tutorial03/#writing-more-views
Prior to this section, I can get polls / views so that they appear without any problems. But when I add three additional views to create polls /views.py, like this:
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)
and then do polls /urls.py as shown below:
from django.conf.urls import patterns, url from polls import views urlpatterns = patterns('',
I get an error message. Aside, my mysite ROOT_URLCONF points to mysite / urls.py, which looks like this:
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)), )
The error I am getting is:
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)
In addition, the following may be informative:
- Using Django 1.5
- Using Python 2.7.3
- Using Django 1.5 Documentation
- Using VirtualBox
- Using VirtualEnv
Any help is appreciated! Why am I getting this error?