不確定是否有人有過使用django專門爲移動設備呈現模板的良好解決方案的經驗。移動瀏覽器的django視圖/模板重定向
我寫了一箇中間件請求處理器,使用正則表達式來檢測它是否是移動瀏覽器。我現在正在請求上設置一個布爾屬性,以便我可以在管道中使用它。但是我的業務邏輯是相同的,我只想使用一組不同的模板。
有沒有辦法讓我在中間件處理器中爲settings.TEMPLATE_DIRS添加一個新的模板目錄,以便移動用戶可以獲得我選擇重寫的視圖,但其他一切都會回退到默認模板目錄。但我需要確保它不會在請求之間持續。
如果我添加了一個目錄,設置是否會在請求之間持續保存?
..如果是這樣,這是正確的解決方案(檢查瀏覽器代理,添加一個額外的模板文件夾,然後在每個請求結束時刪除它)?
當我在load_template_source函數中時,我將如何訪問局部變量?或者我如何設置一個本地變量,我可以在加載程序中訪問 – MattoTodd 2011-03-20 04:25:06
threadlocal實際上是一個全局變量,所以它「只是在那裏」,但您可以確信只會獲得與當前正在執行的請求相關的變量。這裏有很多細節http://stackoverflow.com/questions/1057252/django-how-do-i-access-the-request-object-or-any-other-variable-in-a-forms-clea – easel 2011-03-20 04:27:52
This博客文章有這一切。我將它添加到答案中。 http://opensource.washingtontimes.com/blog/2010/feb/17/loading-templates-based-request-headers-django/ – easel 2011-03-20 04:31:33