參考鏈接:https://blog.csdn.net/u013378306/article/details/79023242
使用Django的admin管理工具,可以快速的構建自己的管理平台,使用Django原生太的模板更能使我們節省很多工作量。但有時候,模板上展現的內容並不能滿足我們的業務需求,我們需要些許調整就可以達到我們想要的效果,此時我們可以通過重寫admin模板來實現。
我們繼續使用前面兩篇文檔中所使用的項目,並在此基礎上來作調整。我們假設我們只允許添加Vm、查看Vm,不允許編輯Vm信息。因為添加、查看、編輯使用的是同一個模板文件,就必須重寫模板文件。
重寫模板
關鍵步驟
-
首先在我們的項目根目錄下建立一個子templates目錄 。
-
其次在templates目錄下建立一個admin子目錄。
-
然后在admin目錄下以我人的應用名建立一個子目錄(需要小寫),如我們的應用cloud 。
-
在應用目錄下以模型層的名字建立一個子目錄(需要小寫,model的名字必須要小寫,否則部署的時候會有問題,大坑),如在cloud目錄下創建vm目錄。
-
我們從django/contrib/admin/templates/admin目錄下拷貝change_form.html文件到我們新建立的vm目錄下。
-
項目目錄結構
修改setting.py文件中的配置項TEMPLATES, 將DIRS的值設置為[os.path.join(BASE_DIR, 'templates')]。TEMPLATES的整體信息如下:
-
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'templates')], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ]
-
-
修改chang_form.html文件
修改chang_form.html文件
-
-
去除{% block object-tools %}……{% endblock %}代碼塊,如圖示:
去除{% block submit_buttons_bottom %}{% submit_row %}{% endblock %}代碼,如圖所示:
-
在{% block after_related_objects %}{% endblock %}代碼后面新增代碼{% if add %}{% block submit_buttons_bottom %}{% submit_row %}{% endblock %}{% endif %},如圖示:
-
