【发布时间】:2011-06-02 04:21:58
【问题描述】:
目前,Django admin 会以粗体标签显示所有必填字段。是否可以在标签中用 * 标记而不是粗体标签?
【问题讨论】:
标签: django django-admin
目前,Django admin 会以粗体标签显示所有必填字段。是否可以在标签中用 * 标记而不是粗体标签?
【问题讨论】:
标签: django django-admin
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 找到模板并以与以前相同的方式覆盖默认模板,仅在项目范围内,而不仅仅是在应用程序范围内。
这是一组相当复杂的事情,特别是对于这样一个简单的更改,如果您以前没有使用过管理模板(或者即使您有),您可能会发现它很棘手。
希望您现在了解更改管理模板所需的内容,它实际上相当优雅(如 Django),但在我看来,仅仅更改为一些星号并不值得。
【讨论】:
.aligned label.required:after {}