0
我寫了一個網站,將有多個皮膚。每個皮膚都有自己的樣式表。我想用一個GET變量來決定的肌膚,讓這個網址:如何在Django中使用多個樣式表,樣式表由GET變量確定,而不違反DRY?
whatever?skin=foo
將導致網頁包含此HTML代碼在標題中被渲染:
<link rel="stylesheet" type="text/css" href="/site_media/foo.css"/>
(通常我希望皮膚由用戶的喜好來決定,但我也希望這樣做,所以用戶可以預覽一下新皮膚的外觀,以及在開發皮膚時對其進行簡化。)
這在Django中很容易做到,例如,您可以使用一個帶有thi s的線路:
<link rel="stylesheet" type="text/css" href="/site_media/{{skin}}.css"/>
而且這樣的觀點:
def whateverView(request):
""" called by URL /whatever """
skin = request.GET.get('skin', "default")
c = RequestContext(request, {'skin': skin})
html = whateverTemplate.render(c)
return HttpResponse(html)
但我不希望有那樣做,因爲我將不得不相同的代碼添加到每個單一視圖,這將違反DRY。
那麼有什麼辦法可以做到這一點,這樣它可以在我的所有頁面上工作,而只需要編寫一次代碼?
工作,謝謝。雖然有一個小問題:在'settings.py'我最初嘗試過: – 2011-03-07 16:33:50