zoukankan      html  css  js  c++  java
  • 关于在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 = '数据更新'
    1
    2
    3
    4
    5
    6
    写完后,需要将 operator 放入,list_display 列表中,以此来达到显示的目的;下面需要将 你在href中定义的链接,在 url.py 中进行定义:

    urlpatterns = [
    path('update_data/', update_pdaq),
    ]
    1
    2
    3
    后面需要根据你定义的 在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)
    1
    2
    3
    4
    5
    6
    7
    8
    上图中 start_main() 则是我自己定义的一个python脚本,在程序执行完成后,脚本会返回一个结果,

    return '数据更新完毕,请登录查看结果!'
    1
    后面需要自己新建一个update.html文件,将结果传入到这个 HTML文档中,

    {{ status }}
    1
    这样,在程序执行完成后,该结果就可以显示在前端页面中。
    上述方法,新手程序员可能会感觉比较复杂,但当你真正的了解 Django原理之后,其实每一个请求都是沿着上述的思路进行的,所以一定要有足够的耐心,将每一段代码试着敲一下,总会得到自己想要的结果。
    ————————————————
    版权声明:本文为CSDN博主「奋斗的小飞侠」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/weixin_45543571/article/details/115705967

    本博2017年4月开始自学,到20年2月已自学3年,不仅仅python,目前已经全栈WEB开发,全自动A股交易,深度学习也初步涉猎,这句话改于2020年2月16日。计划学习10年,40岁学成精英,如若不到,继续学习,终身保持学习状态。30岁之前看不惯社会天天抱怨,30岁突然醒悟,错全在自己身上,跟社会没有任何关系,故开始随时保持学习状态,向梦想冲刺。
  • 相关阅读:
    Navigator对象关于语言的属性
    对ng-repeat的表格内容添加不同样式:ng-style
    ng-repeat
    ES 6 : 函数的扩展
    二维码下载,区分是 ios 和 android
    gulp配置备份
    [转]移动端web页面使用字体的思考
    移动开发总结
    前端优化:雅虎35条
    input填写银行卡号,每四位空一隔
  • 原文地址:https://www.cnblogs.com/hushuning/p/14877727.html
Copyright © 2011-2022 走看看