15、Django Admin添加自定义字段功能

修改模型类HeroAdmin

@admin.register(Hero)
class HeroAdmin(admin.ModelAdmin):
    change_list_template = "entities/heroes_changelist.html"
    
    ...    # 此处原代码不动,只增加此前后代码
    
    def get_urls(self):
        urls = super().get_urls()
        my_urls = [
            path('immortal/', self.set_immortal),
            path('mortal/', self.set_mortal),
        ]
        return my_urls + urls
    def set_immortal(self, request):
        self.model.objects.all().update(is_immortal=True)
        self.message_user(request, "All heroes are now immortal")
        return HttpResponseRedirect("../")
    def set_mortal(self, request):
        self.model.objects.all().update(is_immortal=False)
        self.message_user(request, "All heroes are now mortal")
        return HttpResponseRedirect("../")

新增目录文件templates/Entities/change_form.html,Entities为应用名。change_form.html代码如下:

{% extends "admin/change_form.html" %}
{% load i18n admin_urls %}
{% block object-tools-items %}
    <li>
        <a href="{% url opts|admin_urlname:'history' original.pk|admin_urlquote %}" class="historylink">{% translate "History" %}</a>
    </li>
    <li>
        <a href="mylink/" class="historylink">My Link</a>
    </li>
    {% if has_absolute_url %}
        <li>
            <a href="{% url 'admin:view_on_site' content_type_id original.pk %}" class="viewsitelink">{% translate "View on site" %}</a>
        </li>
    {% endif %}
{% endblock %}

显示效果:

相关推荐
wh_xia_jun23 分钟前
气压测试实验(用IIC)
数据库·mongodb
qq_4350707824 分钟前
python乱炖5——id()函数
python
卓越小Y24 分钟前
用centos安装远程迅雷失败,重写程序做一台下载服务器
linux·python·flask·centos
BigQiu661 小时前
达梦数据库运维相关查询命令
运维·数据库·oracle·达梦数据库
vczxh1 小时前
linux使用命令行编译qt.cpp
linux·数据库·qt
MogulNemenis2 小时前
力扣sql五十题——连接
数据库·sql·leetcode
曼亿点2 小时前
python的流程控制语句之制作空气质量评估系统
android·开发语言·python
强哥带你学BP神经网络2 小时前
基于GA-BP遗传算法优化神经网络的多输入多输出数据预测-Python代码实现
人工智能·python·深度学习·神经网络·机器学习
hakesashou2 小时前
python做游戏好用吗
python·游戏·pygame
姑苏老陈2 小时前
【Python基础】Python错误和异常处理(详细实例)
开发语言·python·python异常处理