【发布时间】:2009-07-15 02:11:00
【问题描述】:
我在myproject.myapp.urls 做这样的事情:
from django.conf.urls.defaults import *
urlpatterns = patterns('myproject.myapp.views',
(ur'^$', 'index'),
(ur'^browse/$', 'browse'),
(ur'^request/new/$', 'new_request'),
(ur'^(?P<url_key>[-a-zA-Z0-9]+)/$', 'view1'),
(ur'^(?P<url_key>[-a-zA-Z0-9]+)/asdf$', 'view2'),
(ur'^(?P<url_key>[-a-zA-Z0-9]+)/qwer$', 'view3'),
(ur'^(?P<url_key>[-a-zA-Z0-9]+)/zxcv$', 'view4'),
(ur'^(?P<url_key>[-a-zA-Z0-9]+)/tyui$', 'view5'),
(ur'^(?P<url_key>[-a-zA-Z0-9]+)/ghjk$', 'view6'),
(ur'^(?P<url_key>[-a-zA-Z0-9]+)/bnm/more-looong-url/$', 'view7'),
...
)
我尝试重构上述规则并将它们定义在另一个文件urls2.py 中,如下所示:
(ur'^(?P<url_key>[-a-zA-Z0-9]+)/', include('myproject.myapp.urls2')),
但它似乎会导致包括 urlresolvers 在内的单元测试出现问题。
这里有没有更好的方法来“重构”正则表达式的公共部分 (<url_key>)?
【问题讨论】:
-
造成了什么问题?使用 include('') 通常非常简单。您能否描述它给出的错误,或者输出与您的预期有何不同?
标签: django django-urls