如何修改Django Admin中模型的默认按钮名称?
修改Django Admin默认操作按钮的显示名称
默认情况下,Django Admin的模型详情页会显示「保存」「保存并继续编辑」「保存并添加另一个」等操作按钮,以下是修改这些按钮文本的两种常用方法:
1. 针对单个模型自定义
在对应模型的ModelAdmin类中,直接设置Django 3.2+提供的内置属性即可快速修改:
from django.contrib import admin from .models import 你的模型类 @admin.register(你的模型类) class 你的模型Admin(admin.ModelAdmin): # 修改「保存」按钮文本 save_label = "保存修改" # 修改「保存并继续编辑」按钮文本 save_and_continue_label = "保存后继续编辑" # 修改「保存并添加另一个」按钮文本 save_and_add_another_label = "保存后新增条目"
如果你的Django版本低于3.2,需要自定义模板来实现:
- 在项目模板目录下创建
admin/你的应用名/你的模型名/change_form.html文件,内容如下:
{% extends "admin/change_form.html" %} {% block submit_row %} <div class="submit-row"> {% if show_save %} <input type="submit" value="保存修改" name="_save"> {% endif %} {% if show_save_and_add_another %} <input type="submit" value="保存并新增" name="_addanother"> {% endif %} {% if show_save_and_continue %} <input type="submit" value="保存并继续编辑" name="_continue"> {% endif %} {% if show_delete_link %} {% url opts|admin_urlname:'delete' original.pk|admin_urlquote as delete_url %} <p class="deletelink-box"><a href="{{ delete_url }}" class="deletelink">删除</a></p> {% endif %} </div> {% endblock %}
- 在
ModelAdmin类中指定该模板:
class 你的模型Admin(admin.ModelAdmin): change_form_template = "admin/你的应用名/你的模型名/change_form.html"
2. 全局统一修改所有模型
如果需要给所有Admin模型统一修改按钮文本,可以定义一个基类ModelAdmin,让其他模型的Admin类继承它:
from django.contrib import admin class BaseAdmin(admin.ModelAdmin): save_label = "保存修改" save_and_continue_label = "保存后继续编辑" save_and_add_another_label = "保存后新增条目" # 其他模型Admin继承该基类 @admin.register(你的模型类) class 你的模型Admin(BaseAdmin): # 其他自定义配置 pass
默认操作按钮示例:
内容的提问来源于stack exchange,提问作者Aidar
相关产品推荐
相关产品推荐

