📜  更改 django 管理标题 - Python (1)

📅  最后修改于: 2023-12-03 14:55:13.271000             🧑  作者: Mango

更改 Django 管理标题 - Python

在 Django 的管理后台中,每个模型都有一个默认的标题显示在页面上。这个默认标题是根据模型的名称自动生成的,但有时候我们希望能够自定义这个标题来更好地反映模型的含义。

为了更改 Django 管理标题,我们需要对模型的 ModelAdmin 类进行自定义。下面是一些常用的方法来实现这个目标。

方法一:在 ModelAdmin 中定义 verbose_name_plural

可以直接在模型的 ModelAdmin 类中定义 verbose_name_plural 属性来更改标题。verbose_name_plural 属性是一个字符串,表示模型的复数形式的名称。

from django.contrib import admin
from .models import MyModel

class MyModelAdmin(admin.ModelAdmin):
    verbose_name_plural = '自定义标题'

admin.site.register(MyModel, MyModelAdmin)
方法二:重写 model_admin 模板

另一种方法是通过重写 admin/change_list.html 模板来更改标题。首先,创建一个名为 templates/admin 的目录,并在该目录下创建一个名为 change_list.html 的文件。

{% extends "admin/change_list.html" %}

{% block title %}
    <title>自定义标题</title>
{% endblock %}

然后,在模型的 ModelAdmin 类中指定使用这个模板:

from django.contrib import admin
from .models import MyModel

class MyModelAdmin(admin.ModelAdmin):
    change_list_template = 'admin/change_list.html'

admin.site.register(MyModel, MyModelAdmin)
方法三:使用 short_description 属性

还可以在模型的方法或属性上使用 short_description 属性来更改标题。short_description 属性是一个字符串,表示方法或属性的自定义标题。

from django.contrib import admin
from .models import MyModel

class MyModelAdmin(admin.ModelAdmin):
    def custom_title(self, obj):
        return obj.name

    custom_title.short_description = '自定义标题'

admin.site.register(MyModel, MyModelAdmin)

以上是三种常用的方法来更改 Django 管理标题。根据你的需求选择其中一种方法即可。希望这些信息对你有帮助!

注意:以上代码示例是基于 Django 3.x 版本编写的。

请注意,在使用这些方法时需要相应地修改模型和模型的字段名称,以适应具体的情况。

参考文档:Django 官方文档 - 模型管理页面