【发布时间】:2012-09-08 17:44:13
【问题描述】:
我正在尝试完成一个 Django 教程 (https://docs.djangoproject.com/en/dev/intro/tutorial03/) 并且遇到了一个问题,我认为这是我对正则表达式的理解和include() 函数。
我有问题的 urls.py:
from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^polls/', include('polls.urls')),
)
其中,引导我(浏览到http://localhost:8000/admin/)到 polls.urls 的详细视图 - 其代码是:
from django.conf.urls import patterns, url
urlpatterns = patterns('polls.views',
url(r'^$', 'index'),
url(r'^(?P<poll_id>\d+)/$', 'detail'),
url(r'^(?P<poll_id>\d+)/results/$', 'results'),
url(r'^(?P<poll_id>\d+)/vote/$', 'vote'),
)
我明白为什么它与民意调查匹配并被带到 polls.urls。有什么想法吗?
注意:当我注释掉 url(r'^polls/, include('polls.urls')), 行时,我可以再次看到管理页面
谢谢!
【问题讨论】:
-
你能从 url(r'^polls/', include('polls.urls')) 中删除 url,吗?这是正则表达式匹配的一些问题。
-
恐怕不行 - 我确实认为这是正则表达式匹配的问题,但 url 是必需的。我只是不明白为什么当第二个
includes存在但不匹配时它不匹配r'^admin/'。 -
抱歉,只是为了澄清(/纠正我自己),
url似乎不是必需的,但它的删除,虽然仍然允许我看到我的投票页面,但不会让我看到我的管理页面。
标签: regex django django-admin django-views