我目前正在通過Django Tutorial (Step 3)的方式工作,並陷入了「Decoupling the URLconfs」部分。使用INCLUDE時,Django的URL模式無法按預期工作
我試圖做的是設置一個URL模式,捕獲lnadmin /,重定向到django管理員,最終另一個捕獲所有重定向到其他文件包含的其他模式。
這裏是我的mysite/urls.py:
from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^lnadmin/', include(admin.site.urls)), #match admin
url(r'^test/', include('lnapp.urls')), #match test, should be a catch-all later
)
和這裏的lnapp/urls.py,這是爲了匹配散列/(任何)/:
from django.conf.urls import patterns, include, url
urlpatterns = patterns('lnapp.views',
url(r'^hash/(?P<hash>.+)/$', 'hash'), #match part to load from hash
)
我有這個在之前的主要url.py模式中,它按預期工作。 現在發生的事情是,當我打開(mydomain)/ lnadmin /時,它會嘗試訪問lnapp.views.hash(無法導入lnapp.views.hash,因爲沒有定義視圖)。
這對我沒有任何意義,因爲lnadmin /應該與第一個模式匹配,並且/ lnadmin /不匹配test/hash /(任何)/。只要我註釋掉lnapp/urls.py中的一個url,就會按照預期重定向到管理員。
在主url.py中交換兩個網址都沒有效果。