django-admin在详情页自定义按钮

如果是在表单最上面添加按钮,新建一个HTML文件,这样写

{% extends 'admin/change_form.html' %}
{% block submit_buttons_top %}
    <div class="submit-row">
            <input type="submit" value="1.button" name="_render-sql">
            <input type="submit" value="2.button" name="_test-api">
    </div>
{% endblock %}

如果自定义按钮要放在下面,这样写

{% block submit_buttons_bottom %}
<!--如果要保留原有按钮,下面这行要保留-->
{% submit_row %}
<div class="submit-row">
            <input type="submit" value="1.button" name="_render-sql">
            <input type="submit" value="2.button" name="_test-api">
    </div>
{% endblock %}

将HTML文件放在当前app的templates目录下

在admin.py的admin类中指定

change_form_template = 'new_change_form.html'

重写reponse_change方法

复制代码
    def response_change(self, request, obj):
        if "_test-api" in request.POST:
            #your code
            self.message_user(request, json.loads(s))
            return HttpResponseRedirect(".")
        elif "_render-sql" in request.POST:
            #给用户发自定义消息,然后重定向到本页面
            return HttpResponseRedirect(".")
        return super().response_change(request, obj)    
复制代码

大功告成!

posted @   Mars.wang  阅读(934)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示