关于在django框架中在admin页面下添加自定义按钮并实现功能

关于如何在django中admin页面下添加自定义按钮并实现功能

关于如何在django中admin页面下添加自定义按钮并实现功能

最近使用Django的admin页面开发了一个产品信息管理系统,由于需求的不断增加,需要在admin页面自定义一些按钮,并通过request请求,触发后端的一下脚本程序,实现某些特定的功能。首先声明一下:本程序是基于django 2.2.16版本进行开发的,过低的版本不知道是否能够实现。

首先修改admin页面

对于网上的教程,相信不少需要增加此功能的程序员已经看过相关的文章了,但是通过对比网上的一些教程来说,一般都会需要修改admin自带的 HTML 文档,但是我个人觉得,这种方法对于一些新手程序员,尤其像本人这种,没有多少经验,稍有不慎就会发生莫名奇妙的问题,而且很难排查,浪费时间。
下面正式开始介绍:
首先在 admin.py 中定义一个功能函数,我这里起名叫 operator ,此函数中使用 format_html 方法返回一个 a 标签,在 href 中加入你需要的链接地址,具体代码如下:

def operator(self, obj):
        return format_html(
            '<a href="/update_data/">更新<a/>'
        )

    operator.short_description = '数据更新'

写完后,需要将 operator 放入,list_display 列表中,以此来达到显示的目的;下面需要将 你在href中定义的链接,在 url.py 中进行定义:

urlpatterns = [
    path('update_data/', update_pdaq),
]

后面需要根据你定义的 在views.py 中定义相关的功能函数:

def update_pdaq(request):
    if request.META:
        # print(request.META)
        status = start_main()
        context = {
            'status': status
        }
        return render(request, 'update.html', context=context)

上图中 start_main() 则是我自己定义的一个python脚本,在程序执行完成后,脚本会返回一个结果,

return '数据更新完毕,请登录查看结果!'

后面需要自己新建一个update.html文件,将结果传入到这个 HTML文档中,

{{ status }}

这样,在程序执行完成后,该结果就可以显示在前端页面中。
上述方法,新手程序员可能会感觉比较复杂,但当你真正的了解 Django原理之后,其实每一个请求都是沿着上述的思路进行的,所以一定要有足够的耐心,将每一段代码试着敲一下,总会得到自己想要的结果。

  • 4
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值