Ошибка синтаксиса URL в Django - PullRequest
0 голосов
/ 14 апреля 2011

Я создаю вики-приложение.И когда я создаю URL для моего приложения в urls.py, я получаю сообщение об ошибке синтаксиса.Я плохо разбираюсь в регулярных выражениях.

Вот мой код,

(r'wikicamp/(?<page_name>[^/]+)/edit/$', 'wikicamp.wiki.views.edit_page'),
(r'wikicamp/(?<page_name>[^/]+)/save/$', 'wikicamp.wiki.views.save_page'),
(r'wikicamp/(?<page_name>[^/]+)/$', 'wikicamp.wiki.views.view_page'),

И моя ошибка в том,

error at /
syntax error
Request Method: GET
Request URL:    http://127.0.0.1:8000/
Django Version: 1.2.5
Exception Type: error
Exception Value:    
syntax error
Exception Location: /usr/lib/python2.6/re.py in _compile, line 245
Python Executable:  /usr/bin/python
Python Version: 2.6.6
Python Path:    ['/home/ztron/wikicamp', '/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk', '/usr/lib/python2.6/lib-old', '/usr/lib/python2.6/lib-dynload', '/usr/local/lib/python2.6/dist-packages', '/usr/lib/python2.6/dist-packages', '/usr/lib/python2.6/dist-packages/PIL', '/usr/lib/python2.6/dist-packages/gst-0.10', '/usr/lib/pymodules/python2.6', '/usr/lib/python2.6/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.6/gtk-2.0']
Server time:    Wed, 13 Apr 2011 15:21:18 -0500

Что-то не так в регулярном выражении?Я прочитал документацию по Django, но до сих пор не знаю.

Спасибо!

Ответы [ 2 ]

4 голосов
/ 14 апреля 2011

В ваших именованных группах захвата отсутствует буква «P».Сделай так:

(r'wikicamp/(?P<page_name>[^/]+)/edit/$', 'wikicamp.wiki.views.edit_page'),
(r'wikicamp/(?P<page_name>[^/]+)/save/$', 'wikicamp.wiki.views.save_page'),
(r'wikicamp/(?P<page_name>[^/]+)/$', 'wikicamp.wiki.views.view_page'),
0 голосов
/ 14 апреля 2011

Согласно http://docs.python.org/library/re.html синтаксис для именованных групп:

(?P<name>...)

Это означает, что вы должны иметь

(r'wikicamp/(?P<page_name>[^/]+)/edit/$', 'wikicamp.wiki.views.edit_page'),
...