我正在官方网站上制作 Django 教程,目前我是 setting up URLs对于我们正在创建的示例投票应用程序。
截至目前,我的 polls/urls.py
看起来像这样:
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^(?P<question_id>[0-9]+)/$', views.detail, name='detail'),
url(r'^(?P<question_id>[0-9]+)/results/$', views.results, name='results'),
url(r'^(?P<question_id>[0-9]+)/vote/$', views.votes, name='vote')
]
我不禁注意到 (?P<question_id>[0-9]+)
的重复所以我想知道除了将其提取为像QUESTION_PATTERN = (?P<question_id>[0-9]+)
这样的常量之外是否有更简单的方法来避免这种情况
最佳答案
您可以包含一个子模式列表,如下所示:
urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^(?P<question_id>[0-9]+)/', include([
url(r'^$', views.detail, name='detail'),
url(r'^results/$', views.results, name='results'),
url(r'^vote/$', views.votes, name='vote'),
]),
]
关于python - 避免重复 Django URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31165511/