我試圖得到Django URL namespaces的掛起。但我找不到任何示例或文檔。你如何使用Django URL命名空間?
這是我試過的。
urls.py:
from django.conf.urls.defaults import *
urlpatterns = patterns('',
(r'^foo/', include('sub_urls', namespace='foo', app_name='foo')),
(r'^bar/', include('sub_urls', namespace='bar', app_name='bar')),
)
sub_urls.py:
from django.conf.urls.defaults import patterns, url
from views import view1
urlpatterns = patterns('views',
url(r'^(?P<view_id>\d+)/$', view1, name='view1')
)
views.py:
from django.shortcuts import render_to_response
def view1(request, view_id):
return render_to_response('view1.html', locals())
在view1.html,{%URL FOO:廠景3% } outputs/foo/3和{%url bar:view1 3%} outputs/bar/3。無論我瀏覽到/ foo/X還是/ bar/X,情況都是如此。
我想要的是能夠瀏覽到/ foo/X或/ bar/X,並且{%url view1 3%}分別輸出/ foo/3或/ bar/3。
我這樣做的原因是,我可以讓這兩個名稱空間使用不同的CSS文件。即在/ foo下瀏覽會包含foo.css,而/ bar會包含bar.css。 – 2009-12-17 03:47:57
我會意識到,擁有相同內容的不同網址一定會讓您的網站在搜索引擎上受到懲罰。我不知道這是否是您的擔憂,但如果是這樣,我會建議以其他方式來解決這個問題。也許你可以在客戶端設置一個cookie,並讓他們以其他方式選擇CSS樣式。 – Clueless 2010-01-21 01:53:08
我最終根據不同的子域來設置CSS。本地測試只是一個痛苦,需要hostfile條目。 – 2010-01-22 14:24:48