2012-04-23 72 views
0

我想創建一個項目,每個用戶都可以擁有自己的「主頁」。所以我希望能夠爲每個用戶設置一個模板並在他的主頁上顯示它。我是否將模板名稱保存在用戶配置文件中並將其傳遞給模板加載器,或者是否有更好/更安全/更易插入的方法來執行此操作?如何在Django中通過url定義模板?

+0

模板之間有什麼區別?它是否可改變?由誰? – okm 2012-04-23 12:22:14

+0

區別主要是光學。不同的css,也許不同的圖像大小和不同的導航等等。我希望用戶能夠通過下拉菜單在模板之間進行選擇。但是能夠很容易地擴展模板的數量對我來說很重要。 – JasonTS 2012-04-23 12:24:48

+0

您可以將標題更改爲「如何根據用戶使用不同的模板」嗎?這有點更清楚。 – 2012-04-23 13:23:15

回答

1

聽起來像你想讓用戶拿起他/她最喜歡的模板,並設置喜好,如背景圖像,顯示風格等一堆?如果是這樣,你的解決方案是好的。實際上,您允許用戶在提供的(和可擴展的)模板集中進行選擇,而不是讓他們完全控制要使用的模板。
此外,對於僅用於每個用戶的偏好設置。您可能希望將它們保存在序列化字段(如jsonfield或picklefield)中,而不是按列存儲它們。我正在編寫一個應用程序來簡化這些字段的編輯。

1

將模板名稱保存在用戶配置文件中沒有問題。就像你說的,你可以將它傳遞給模板渲染方法。

但注意一件事:用戶不應該能夠手動輸入模板名稱。我認爲,它應該是安全原因的選擇領域。請參閱https://docs.djangoproject.com/en/1.4/ref/models/fields/#choices的末尾,您可以使模板選擇列表變爲動態。

相關問題