我想重構我的應用程序一點點,以防止它變得太笨拙。所以我開始將一些urlpatterns移動到子文件中,如文檔提出的那樣。Django管理失敗時使用包括在urlpatterns
除了這個事實,它似乎沒有工作(項目不被重新路由),但當我去管理員,它說'urlpatterns尚未定義'。
的urls.py我有我的應用程序的根目錄是:
if settings.ENABLE_SSL:
urlpatterns = patterns('',
(r'^checkout/orderform/onepage/(\w*)/$','checkout.views.one_page_orderform',{'SSL':True},'commerce.checkout.views.single_product_orderform'),
)
else:
urlpatterns = patterns('',
(r'^checkout/orderform/onepage/(\w*)/$','commerce.checkout.views.single_product_orderform'),
)
urlpatterns+= patterns('',
(r'^$', 'alchemysites.views.route_to_home'),
(r'^%s/' % settings.DAJAXICE_MEDIA_PREFIX, include('dajaxice.urls')),
(r'^/checkout/', include('commerce.urls')),
(r'^/offers',include('commerce.urls')),
(r'^/order/',include('commerce.urls')),
(r'^admin/', include(admin.site.urls)),
(r'^accounts/login/$', login),
(r'^accounts/logout/$', logout),
(r'^(?P<path>.*)/$','alchemysites.views.get_path'),
(r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root':settings.MEDIA_ROOT}),
我已遷出的URL至今都結帳/報價/訂單這是「電子商務」,其中的所有subapps的應用程序的urls.py應該清楚。
/urls.py的問題(這裏包括)
/commerce/urls.py,我想包括urls.py是:
order_info = {
'queryset': Order.objects.all(),
}
urlpatterns+= patterns('',
(r'^offers/$','offers.views.start_offers'),
(r'^offers/([a-zA-Z0-9-]*)/order/(\d*)/add/([a-zA-Z0-9-]*)/(\w*)/next/([a-zA-Z0-9-)/$','offers.views.show_offer'),
(r'^reports/orders/$', list_detail.object_list,order_info),
)
和應用下電子商務提供的謊言。
所以額外的問題是,管理員根本無法工作,所以我在想,因爲我用我的包裝殺死了它。
事情我必須檢查: 是可變的URL模式意外獲得重置地方(即URL模式=模式,而不是URL模式+ =模式) 是在commerce.urls有效模式(是的,當搬回根他們的工作)。
所以從那裏我很難過。我可以將所有的東西都移回到根,但是試圖讓它有點脫鉤,不僅僅是出於理論上的原因,而且還有一些短期的原因。
最後,如果我輸入www.domainname/checkout/orderform/onepage/xxxjsd,我會得到正確的頁面。但是,輸入www.domainname/checkout /會被alchemysites.views.get_path處理。
如果不是答案(因爲這非常具體),那麼是否有排除urls.py故障的好方法?這似乎只是試錯。似乎應該有某種解析器會告訴你你的urlpatterns會做什麼。
是的,這正是它。我把這些部分更深入地移動到了commerce.checkout.urls等等。是的,我誤解了關於「切斷」的部分,我認爲這部分只涉及斜線。謝謝 – zenWeasel 2010-03-17 21:42:36