python测试开发django-52.xadmin添加自定义的javascript(get_media)
2021/6/2 20:24:23
本文主要是介绍python测试开发django-52.xadmin添加自定义的javascript(get_media),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
前言我想使用xadmin在列表页每一行元素添加一个按钮,当点击这个按钮的时候,能发个请求出去,后台执行相关功能。于是想到添加自定义的javascript脚本能实现。
在/stackoverflow上找到这篇https://stackoverflow.com/questions/35772623/how-to-add-custom-javascript-to-django-xadmin,
可能版本不对应,依然解决不了我的需求,大概知道重写get_media方法可以解决。
xadmin在列表页每一行元素添加一个按钮,当点击这个按钮的时候,能发个请求出去,后台执行相关功能,比如点执行按钮时候,发个请求出去
添加按钮,可以通过mark_safe方法插入html代码实现,主要困难是加载自己写的的javascript脚本了
get_media在/xadmin/views/list.py目录找到ListAdminView(ModelAdminView)类,主要是查看get_media方法的使用
# /xadmin/views/list.py # Media @filter_hook def get_media(self): media = super(ListAdminView, self).get_media() + self.vendor('xadmin.page.list.js', 'xadmin.page.form.js') if self.list_display_links_details: media += self.vendor('xadmin.plugin.details.js', 'xadmin.form.css') return media参考案例
在xadmin.py代码如下,使用self.vendor('xadmin.list.xxx.js', 'xadmin.form.css')加载自定义的xadmin.list.xxx.js脚本
class ControlImage(object): # 显示 作者:上海-悠悠 list_display = ['name', 'url', 'add_time', '操作'] def 操作(self, obj): # button = '删除' button = '执行'%(str(obj.name),str(obj.name)) r = mark_safe(button) return r def get_media(self): # media is the parent's return value (modified by any plugins) media = super(ControlImage, self).get_media() + self.vendor('xadmin.page.list.js', 'xadmin.page.form.js') # if self.list_display_links_details: # media += self.vendor('xadmin.plugin.details.js', 'xadmin.form.css') # xadmin.list.xxx.js是自己写的js脚本 media += self.vendor('xadmin.list.xxx.js', 'xadmin.form.css') return media # media = super(ControlImage,self).get_media() # media.add_js(('js/content.js',)) # 这种方法行不通,会报找不到.add_js方法 # return media xadmin.site.register(UploadImage, ControlImage)javascript脚本
table页html元素信息,每个"执行"按钮分配一个id,onclick属性传一个动态的id参数
......执行......执行......执行
接下来把自己写的javascript脚本放到/xadmin/static/xadmin/js目录下
;function click_action_info(id){ var x=id $.get("/weather_code/", //作者:上海-悠悠 { city: x, time: "2019-04-05" }, function (result) { alert("返回数据: \n" +x +"\n" + "reason:" + result.reason + "\n" + "weather_name:" + result.weather_name); }); }
注意前面要加个分号;要不然不生效
这篇关于python测试开发django-52.xadmin添加自定义的javascript(get_media)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-23线下车企门店如何实现线上线下融合?
- 2024-12-23鸿蒙Next ArkTS编程规范总结
- 2024-12-23物流团队冬至高效运转,哪款办公软件可助力风险评估?
- 2024-12-23优化库存,提升效率:医药企业如何借助看板软件实现仓库智能化
- 2024-12-23项目管理零负担!轻量化看板工具如何助力团队协作
- 2024-12-23电商活动复盘,为何是团队成长的核心环节?
- 2024-12-23鸿蒙Next ArkTS高性能编程实战
- 2024-12-23数据驱动:电商复盘从基础到进阶!
- 2024-12-23从数据到客户:跨境电商如何通过销售跟踪工具提升营销精准度?
- 2024-12-23汽车4S店运营效率提升的核心工具