這就是你需要做什麼:
1)在你的應用程序目錄下,創建以下文件夾結構和新建一個名爲HTML文件change_form.html(名字是覆蓋默認的文件非常重要)
your_project
|-- your_project/
|-- myapp/
|-- templates/
|-- admin/
|-- myapp/
|-- change_form.html <- do not misspell this
這種結構是由推薦
2)change_form.html裏面,寫這
{% extends "admin/change_form.html" %}
{% block field_sets %}
{% for fieldset in adminform %}
<fieldset class="module aligned {{ fieldset.classes }}">
{% if fieldset.name %}<h2>{{ fieldset.name }}</h2>{% endif %}
{% if fieldset.description %}
<div class="description">{{ fieldset.description|safe }}</div>
{% endif %}
{% for line in fieldset %}
<div class="form-row{% if line.fields|length_is:'1' and line.errors %} errors{% endif %}{% if not line.has_visible_field %} hidden{% endif %}{% for field in line %}{% if field.field.name %} field-{{ field.field.name }}{% endif %}{% endfor %}">
{% if line.fields|length_is:'1' %}{{ line.errors }}{% endif %}
{% for field in line %}
<div{% if not line.fields|length_is:'1' %} class="field-box{% if field.field.name %} field-{{ field.field.name }}{% endif %}{% if not field.is_readonly and field.errors %} errors{% endif %}{% if field.field.is_hidden %} hidden{% endif %}"{% elif field.is_checkbox %} class="checkbox-row"{% endif %}>
{% if not line.fields|length_is:'1' and not field.is_readonly %}{{ field.errors }}{% endif %}
{% if field.is_checkbox %}
{{ field.field }}{{ field.label_tag }}
{% else %}
{{ field.label_tag }}
{% if field.is_readonly %}
<p>{{ field.contents }}</p>
{% else %}
{{ field.field }} {{ field.field.help_text|safe }}
{% endif %}
{% endif %}
{# {% if field.field.help_text %}#}
{# <p class="help">{{ field.field.help_text|safe }}</p>#}
{# {% endif %}#}
</div>
{% endfor %}
</div>
{% endfor %}
</fieldset>
{% endfor %}
{% endblock %}
這似乎是一個大量的代碼,但它的99%是由Django的管理模板,你需要注意的唯一部分複製是在這裏:
{# {% if field.field.help_text %}#}
{# <p class="help">{{ field.field.help_text|safe }}</p>#}
{# {% endif %}#}
我註釋掉這一部分,這是動了你的幫助文本到下一行的部分。我加{{field.field.help_text |安全}}這行的末尾:
{{ field.field }} {{ field.field.help_text|safe }}
這樣幫助文本將出現在同一線路上的輸入框。
3)這裏是我的settings.py參考模板目錄:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [BASE_DIR+'/templates/'], # <- note I added 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',
],
},
},
]
4)完成!我在Django 1.8測試這一點,所以我的settings.py可能會有所不同,從你的
我要總結如何重寫管理網站在通用模板:
1)發現Django管理模板文件在您的硬盤驅動器上,並找到您需要更改的模板。對於我來說,我用我的機器上的虛擬ENV,這是我找到的模板文件:
/Users/cheng/.virtualenvs/edge/lib/python2.7/site-packages/django/contrib/admin/templates/admin
的/lib中/部分之前的路徑將是你機器上的不同。
2)找到您想要更改的模板文件並記住該HTML文件的名稱。
3)打開HTML文件並找到要覆蓋的{%block%}。對於這個特殊的問題,HTML文件change_form.html和塊的名字是{%塊field_sets%}
4)創建在步驟2中標識的名稱相同的HTML文件,並把它放在你的項目的模板目錄。
5)擴展原始HTML並修改上面顯示的{%block%}。
是否提供了我爲你工作的答案?如果是這樣,請評價它。謝謝。 – Cheng