我是一個Django的新手,在創造我的第一個項目,我已經認識到,很多我的樣板代碼(在我的頁面左側的列表)。我必須在每個視圖中重新創建它們,我試圖堅持DRY,但是我發現自己每次都要重寫代碼。有沒有辦法從我的基本視圖繼承,只是修改一些對象?Django的樣板模板代碼
謝謝, 詹姆斯
我是一個Django的新手,在創造我的第一個項目,我已經認識到,很多我的樣板代碼(在我的頁面左側的列表)。我必須在每個視圖中重新創建它們,我試圖堅持DRY,但是我發現自己每次都要重寫代碼。有沒有辦法從我的基本視圖繼承,只是修改一些對象?Django的樣板模板代碼
謝謝, 詹姆斯
如果不決定使用某種原因,背景處理器(該解決方案看起來在這裏合理的),你總是可以封裝了一些常見的邏輯放到UTIL功能,在您的意見中使用它們。
您還可以看看Generic views - 這是「保持乾爽」與您的代碼
是的,你會想看看template inheritance,它可以讓你共享模板之間的共同元素,以及{% include %}
模板標籤,它可以讓你創建可重用的模板「片段」,可以是包含在其他模板中。
編輯:重新閱讀這個問題,聽起來好像你正在討論的樣板代碼,你在你的視圖中使用的函數/方法來生成由多個模板共享的上下文。在這種情況下,mipadi的答案是正確的:查看上下文處理器。
您可能想使用一個context processor這項工作。
對於近期的文章等名單,custom template tags是你需要的東西。而上下文處理器將與列表自動填充您的背景下,模板標籤實際上可以做到這一點再加上創建列本身整個HTML標記。
對於再次出現持續可以使用包括模板標籤靜態html大塊的好方法:
{% include 'static/some_file.html' %}
將包括存儲在模板文件系統,就像模板。