簡體   English   中英

為 django 包添加模板文件夾選擇

[英]Add a template folder selection for a django package

我對 django 比較陌生,正在尋找有關自定義包模板管理的幫助。

在工作中,我們使用自制的自定義 django 包,我們將其添加到主要項目中已安裝的應用程序中。 這個包有工具和實用程序,以及我們在主要項目中派生的基本模板。

有什么變化? 我們需要更新我們的前端並且正在更改庫,這對這個自定義包中的模板有影響。

為了避免增加自定義包分支和版本(我們已經有幾個用於不同版本的 django),並且考慮到我們現有應用程序中的模板不會一次全部更新,我們希望這樣做主項目將使用舊模板或新版本的模板(變量選擇或默認)。

我的目標(如果可能的話):

  • 在項目將在其中查找的自定義包模板文件夾中添加文件夾級別
  • 添加一個變量(例如在項目的 settings.py 文件中)以指示主項目需要在包中查找哪個模板文件夾
  • 不必修改包中的舊模板文件夾或應用程序中的舊模板。 例如,必須在此包中進行與安全相關的關鍵更新,不應該要求基於舊模板更新現有項目中的所有模板)。

我已經研究了 django-crispy-forms 包如何選擇引導程序版本,但據我所知,它系統地呈現了一個項目的視圖,給出了模板包的精度,在我看來,這需要一個巨大的整體因為我們的基本應用程序模板從自定義包模板派生而來,帶有一個簡單的 {% extends "custom_package/templatename.html" %}

我也試圖了解 django 加載器,但我承認我也不確定這是否是正確的方法,盡管閱讀了有關此的 django 文檔,我仍然覺得它們有點神秘,不知道我是怎么做的會為了我們的特定目的而去做。

也許我在 django-crispy-forms 中遺漏了什么? 或者裝載機是否是一個相關/更好的角度,如果是這樣,您將如何向鄰居的 10 歲孩子解釋它們? 您是否有其他選擇可以幫助實現我們的目標?

任何幫助表示贊賞!

如果您希望 django 盡可能使用您的模板並在需要時使用同名模板,則此答案將有所幫助。

Django 有一個 FileSystemFinder,它將在STATICFILES_DIRS搜索模板。 如果您在 STATICFILES_DIR 中先注冊您的應用程序,則 django 將首先找到您的應用程序模板並盡可能使用它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM