I am using named url-patterns in my Django app, but it is failing and I don't know why. I have followed the docs but my app errors out when it reads urls.py.
This works:
urls.py
from django.conf.urls import patterns
from www.apps.newsletter.models import Newsletter
from www.apps.newsletter.views import index, detail
urlpatterns = patterns('',
(r'^vol(?P<q_vol>\d+)/no(?P<q_no>\d+)/(?P<q_slug>[^.*]+)/$', detail),
(r'^vol(?P<q_vol>\d+)/no(?P<q_no>\d+)/$', index),
(r'^vol(?P<q_vol>\d+)/$', index),
(r'^$', index),
)
But this fails:
urls.py
from django.conf.urls import patterns
from www.apps.newsletter.models import Newsletter
from www.apps.newsletter.views import index, detail
urlpatterns = patterns('',
(r'^vol(?P<q_vol>\d+)/no(?P<q_no>\d+)/(?P<q_slug>[^.*]+)/$', detail, name='newsletter-detail'),
(r'^vol(?P<q_vol>\d+)/no(?P<q_no>\d+)/$', index),
(r'^vol(?P<q_vol>\d+)/$', index),
(r'^$', index),
)
I want to use named url patterns (so I can use {% url %} in my template), but Django doesn't seem to want to play nice. Any ideas? All I am doing is adding the arg name="" and it causes the error:
SyntaxError at /newsletter/
invalid syntax (urls.py, line 6)
This urls.py is referenced by the parent urls.py:
urlpatterns = patterns('',
url(r'^grappelli/', include('grappelli.urls')),
url(r'^admin/', include(admin.site.urls)),
url(r'^software/', include('www.apps.software.urls')),
url(r'^newsletter/', include('www.apps.newsletter.urls')),
)
I am using Django version 1.4. TIA.