目前,Django管理员将使用粗体标签显示所有必填字段。是否可以在标签中标记*而不是粗体标签?
答案 0 :(得分:13)
Django管理员使用模板呈现模型的添加/编辑页面。可以使用您自己的模板(从原始模板扩展)替换该模板,覆盖您需要的模板块,以便进行所需的更改。
查看the Django docs regarding overriding admin templates了解详情。
您需要以某种方式更改admin/change_form.html template(因为此模板会在您添加新实例或编辑现有实例时呈现显示的页面)。现有模板已将required
类应用于相应的标签,因此我将创建一个如下所示的新模板:
{% extends "admin/change_form.html" %}
{% block extrastyle %}
{{ block.super }}
<style type="text/css">
/* add an asterisk using CSS */
.required:after {
content: " *";
}
</style>
{% endblock %}
如果您希望将此模板用于特定模型,则应使用model admin class,将change_form_template
属性(如this section of the docs中所述)设置为您拥有的模板文件的位置创建
如果您希望模板应用于整个应用中的模型,请在应用的根目录中创建一个templates
文件夹。 Django将automatically look for templates there,所以如果您创建一个名为admin
的文件夹并在其中放置一个名为change_form.html
的文件,它将自动覆盖该名称的默认Django模板(admin/change_form.html
)
为了在项目范围内应用此模板,请在名为templates
的某处(不在应用内)创建一个文件夹。再次将新模板放在此admin/change_form.html
目录中。
下一个edit the template directories Django setting指定此目录的位置,以便允许Django查找模板并覆盖默认模板,方法与仅在项目范围之前相同,而不仅仅是app wide。
这是一组相当复杂的事情,特别是对于这样一个简单的更改,如果您之前没有使用过管理员模板(或者即使您有),您可能会发现它很棘手。
希望您现在明白更改管理模板需要什么,实际上相当优雅(就像Django一样),但在我看来,仅仅为了改变一些星号而不值得。