odoo开发笔记 -- 附件上传
附件上传基本原理实现,可以参考这篇:
https://www.cnblogs.com/ljwTiey/p/7348291.html
http://blog.csdn.net/wangnan537/article/details/41903159
首先我们看一下odoo界面默认的附件功能,有木有感觉不是很友好!囧 :)
下面给小伙伴们介绍另一种odoo自带的附件管理方式!
首先,在你的模型中增加如下定义:
################################################################################################################ 增加附件上传功能attachment_number = fields.Integer(compute='_compute_attachment_number', string='Number of Attachments')@api.multidef _compute_attachment_number(self):"""附件上传"""attachment_data = self.env['ir.attachment'].read_group([('res_model', '=', '替换成你的模型名'), ('res_id', 'in', self.ids)], ['res_id'], ['res_id'])attachment = dict((data['res_id'], data['res_id_count']) for data in attachment_data)for expense in self:expense.attachment_number = attachment.get(expense.id, 0)@api.multidef action_get_attachment_view(self):"""附件上传动作视图"""self.ensure_one()res = self.env['ir.actions.act_window'].for_xml_id('base', 'action_attachment')res['domain'] = [('res_model', '=', '替换成你的模型名'), ('res_id', 'in', self.ids)]res['context'] = {'default_res_model': '替换成你的模型名', 'default_res_id': self.id}return res#############################################################################################
前端view视图增加如下代码:
<div class="oe_button_box" name="button_box"><button name="action_get_attachment_view" class="oe_stat_button" icon="fa-book" type="object"><field name="attachment_number" widget="statinfo" string="附件上传"/></button> </div>
实现效果:
注意上方这个上传界面,odoo做了权限配置,在开发者模式下,和普通模式下,显示的界面是不同的。
激活开发者模式,该界面显示效果:
这里其实是在视图view前端代码字段中增加了如下设置:
小伙伴们试试吧!!!
ps: 另外,注意一下,odoo附件模型属于底层模型,当服务启动时候,就会加载附件模型数据结构;因此,当你自定义了一个新模块A,扩展了附件的字段,没问题,可以正常安装,也可以正常使用!
但是,但是!如果该新模块A使用了一段时间后,假如你还想在该模块A基础上继续扩展附件字段!
对不起,这个时候,扩展后,重启odoo服务会报错,提示相关附件,找不到你扩展的那个字段。
就是由于,服务启动的时候,附件模型py数据结构文件就会被加载,但是真正的此时数据库中还没有生成相应的字段,所以会报错。
而我们自己开发的模块在模型字段扩展后,为什么没有这个问题呢?
这是因为,我们普通模块模型修改后,同样在odoo服务重启后,模型py文件会被加载,但是,我们可以进入应用列表,找到该模块,点击升级,数据库中就会生成新的表结构。
结论:我们在扩展odoo底层自带模块模型字段的时候,要么一次定义好,要么使用一段时间后还想扩展,那么可以重新编写个单独的模块来扩展。
转载于:https://www.cnblogs.com/hellojesson/p/8390635.html
odoo开发笔记 -- 附件上传相关推荐
- odoo14 ir.attachment附件上传与附件预览功能
一.附件上传 这里收集了三种附件上传方式: 1.odoo自带附件上传 安装odoo自带的附件列出及文档模块 这样在编辑界面就可以看到附件上传按钮了(odoo14自己测试没成功,暂时不知道原因) 2. ...
- 金蝶云星空ERP附件上传接口开发思路
1️⃣ 需求描述:需要通过调用金蝶API接口实现指定单据的附件上传.本文以收料通知单为例,以Java代码示例进行讲解. tips:阅读本文开始前,希望你是一名开发者同时阅读过: https://vip ...
- 用友nc开发,添加附件上传按钮
1.在功能注册中找到有附件上传按钮的的模板,这个模板中文件管理就是附件上传 2.通过Document到xml文件中找到他对应的按钮实现类
- java上传文件限制大小_Java Web:附件上传,两种文件上传限制格式及大小方法,学习笔记文件操作【诗书画唱】...
附件上传: package com.jy.controller; import java.io.File; import java.io.FileOutputStream; import java.i ...
- 利用钉钉云盘实现业务系统需要的附件上传、下载和预览
本文主要记录自己在工作学习中遇到的坑和解决思路,仅供大家参考 目录 前言 一.钉盘是什么? 二.为什么要使用钉盘? 三.JSAPI鉴权 1.鉴权的时机 2.鉴权的时效 3.鉴权的代码 3.1.获取ac ...
- (转)基于MVC4+EasyUI的Web开发框架形成之旅--附件上传组件uploadify的使用
http://www.cnblogs.com/wuhuacong/p/3343967.html 大概一年前,我还在用Asp.NET开发一些行业管理系统的时候,就曾经使用这个组件作为文件的上传操作,在随 ...
- ASP.NET多附件上传和附件编辑的实现
在写这篇文章之前我也在Google上找到了很多有关多附件上传的文章,有用ASP.NET实现的,也有用JSP.PHP等其它技术实现的,但基本前提都是事先通过js脚本来动态创建DOM,然后上传的时候在服务 ...
- 微信小程序开发之文件上传下载应用场景(附Demo源码)
微信小程序开发之文件上传下载应用场景(附Demo源码),Demo为小相册应用,源码在附件中,本示例需要腾讯云支持. http://www.henkuai.com/forum.php?mod=viewt ...
- 闲人闲谈PS之二十一——SAP自定义程序增加附件上传下载功能
惯例闲话:国庆假期后,状态不佳,闲人找回状态的方法,对电脑翻箱倒柜,整理文件,往往在整理鸡零狗碎时,会有一些新收获,这倒成了自我调整的一套规律- 这次整理捣鼓,还真是发现了一个解决长久以来SAP被人吐 ...
- 微信小程序基于vant和springboot实现附件上传和预览
前言 图片上传和预览在移动端应用非常广泛和频繁,vant组件库van-uploader组件已经帮我们实现了大部分功能,但是在系统中频繁使用还是有点麻烦,我们根据自身的业务系统重新封装了一下简化我们的开 ...
最新文章
- 编程能力强化(4)——模拟SQL语句解析
- Kafka设计解析(八)- Exactly Once语义与事务机制原理
- linux串口中断_5年匠心之作,深度探索Linux虚拟化
- 干货:产品经理怎么做才能在需求评审中少挨打?
- 机器学习中目标函数、损失函数以及正则项的通俗解释
- Dubbo 新增本地 IDE 插件,快速创建样例工程
- sql增加字段默认为0_OUP2.0:mysql乐观锁不生效
- 如何在.Netcore控制台应用中使用依赖注入(4)
- 【C++】获取二维数组的行和列
- Github copilot: AI协助编程尝试
- react-tv-focusable
- 永洪BI配置GIS地图的方法
- Wireshark通过TCP协议抓取QQ好友IP以及定位
- 高斯过程分类和高斯过程回归_高斯过程回归建模入门
- Leetcode第904题
- 基于FPGA数字混频器的设计(1)
- U盘安装苹果系统教程,菜鸟一步一步也能成大牛
- 全网首发!老大众奥迪碟盒通信协议破解,可以模拟数码碟盒,外接AUX蓝牙U盘等音频设备
- 数据时代大数据管理,主要有哪些策略?
- 【PostgreSQL实战】之还原备份文件
热门文章
- 公式推导 11-14
- python 环形图_Python通过matplotlib画双层饼图及环形图简单示例
- 凸优化第五章对偶 5.3几何解释
- Struts2中过滤器和拦截器的区别
- Lucene创建索引和搜索索引
- android studio for android learning (六)应用程序窗体显示状态操作(requestWindowFeature等的应用)
- trace (矩阵的迹) 的性质
- 贝叶斯公式和共轭分布
- No qualifying bean of type;Unsatisfied dependency expressed through field 解决办法(总结全网)
- java条件触发,触发器触发条件是什么?更改数据时实现方法是什么?