回答
這應該與JavaScript,而不是Django。看看用Jquery做到這一點。
要建立在Django一個主題選擇使用的形式來獲取用戶的樣式表的選擇和存儲風格選擇在會話中。有效形式應該執行:
request.session['style'] = the_style_choice
https://docs.djangoproject.com/en/1.5/topics/http/sessions/
使用上下文處理器每個請求返回正確的樣式表settings.py:
TEMPLATE_CONTEXT_PROCESSORS = (
...
"MyContextProcessor.get_style",
)
在MyContextProcessor.py
def get_style(request):
if 'style' in request.session:
style = request.session.get('style')
else:
style = 'some_style.css'
request.session['style'] = style
return {'style': style, }
https://docs.djangoproject.com/en/1.5/ref/templates/api/#subclassing-context-requestcontext
在你的基礎模板添加樣式:
{{ style }}
您可以使用Ajax的形式給用戶一個流暢的體驗:https://docs.djangoproject.com/en/1.5/topics/class-based-views/generic-editing/#ajax-example
@bodger加載的樣式:我的回答有幫助嗎?反饋表示讚賞。 – allcaps
這是非常聰明,輝煌的解決方案。就我個人而言,我將與django網站一起使用此網站,並將其與site_id的關係存儲爲1-1。 –
- 1. android動態更改樣式
- 2. 動態更改樣式。
- 3. 動態SELECT ID中的Catch SELECT更改
- 4. 動態更改樣式表C#
- 5. 動態更改基本樣式
- 6. 動態更改控件的樣式
- 7. 如何動態更改CSS樣式
- 8. 動態樣式更改方法失敗
- 9. 更改按鈕樣式動態
- 10. WPF動態更改窗口樣式
- 11. Angular2無法動態更改css樣式
- 12. tabhost中的動態樣式更改
- 13. 無循環動態更改類樣式
- 14. 動態更改wx.Dialog wx.CLOSE_BOX樣式
- 15. 在Extjs中動態更改TextField樣式
- 16. 動態更改wx.TextCtrl樣式標誌
- 17. 在ExtJS 6上動態更改樣式
- 18. 更改動態文本的樣式
- 19. 基於ApplicationViewState動態更改樣式
- 20. 在WPF中動態更改樣式
- 21. 動態更改樣式的屬性
- 22. angularjs:動態更改樣式失敗
- 23. JavaScript動態更改CSS背景樣式
- 24. 動態更改按鈕樣式
- 25. ASP.NET - 更改樣式表動態
- 26. 更改狀態更改的樣式
- 27. 使用Qt樣式表更改狀態更改圖標
- 28. 使用JavaScript動態更改元素樣式屬性
- 29. 如何使用widgetwar動態更改組件的樣式?
- 30. 如何使用JavaScript動態更改級聯樣式表(CSS)
我並不同意這種看法;在Django中這樣做很好。 1)優雅的降級2)使用會話來存儲主題失去了配置和存儲單個網站的主題的能力 –
另外,在移動或緩慢的互聯網用戶訪問未被緩存的頁面將會有相當刺激的經驗;他們會看到默認主題閃光燈,然後改變爲由js –