附件上传基本原理实现,可以参考这篇:

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开发笔记 -- 附件上传相关推荐

  1. odoo14 ir.attachment附件上传与附件预览功能

    一.附件上传 这里收集了三种附件上传方式: 1.odoo自带附件上传 安装odoo自带的附件列出及文档模块 这样在编辑界面就可以看到附件上传按钮了(odoo14自己测试没成功,暂时不知道原因) 2. ...

  2. 金蝶云星空ERP附件上传接口开发思路

    1️⃣ 需求描述:需要通过调用金蝶API接口实现指定单据的附件上传.本文以收料通知单为例,以Java代码示例进行讲解. tips:阅读本文开始前,希望你是一名开发者同时阅读过: https://vip ...

  3. 用友nc开发,添加附件上传按钮

    1.在功能注册中找到有附件上传按钮的的模板,这个模板中文件管理就是附件上传 2.通过Document到xml文件中找到他对应的按钮实现类

  4. java上传文件限制大小_Java Web:附件上传,两种文件上传限制格式及大小方法,学习笔记文件操作【诗书画唱】...

    附件上传: package com.jy.controller; import java.io.File; import java.io.FileOutputStream; import java.i ...

  5. 利用钉钉云盘实现业务系统需要的附件上传、下载和预览

    本文主要记录自己在工作学习中遇到的坑和解决思路,仅供大家参考 目录 前言 一.钉盘是什么? 二.为什么要使用钉盘? 三.JSAPI鉴权 1.鉴权的时机 2.鉴权的时效 3.鉴权的代码 3.1.获取ac ...

  6. (转)基于MVC4+EasyUI的Web开发框架形成之旅--附件上传组件uploadify的使用

    http://www.cnblogs.com/wuhuacong/p/3343967.html 大概一年前,我还在用Asp.NET开发一些行业管理系统的时候,就曾经使用这个组件作为文件的上传操作,在随 ...

  7. ASP.NET多附件上传和附件编辑的实现

    在写这篇文章之前我也在Google上找到了很多有关多附件上传的文章,有用ASP.NET实现的,也有用JSP.PHP等其它技术实现的,但基本前提都是事先通过js脚本来动态创建DOM,然后上传的时候在服务 ...

  8. 微信小程序开发之文件上传下载应用场景(附Demo源码)

    微信小程序开发之文件上传下载应用场景(附Demo源码),Demo为小相册应用,源码在附件中,本示例需要腾讯云支持. http://www.henkuai.com/forum.php?mod=viewt ...

  9. 闲人闲谈PS之二十一——SAP自定义程序增加附件上传下载功能

    惯例闲话:国庆假期后,状态不佳,闲人找回状态的方法,对电脑翻箱倒柜,整理文件,往往在整理鸡零狗碎时,会有一些新收获,这倒成了自我调整的一套规律- 这次整理捣鼓,还真是发现了一个解决长久以来SAP被人吐 ...

  10. 微信小程序基于vant和springboot实现附件上传和预览

    前言 图片上传和预览在移动端应用非常广泛和频繁,vant组件库van-uploader组件已经帮我们实现了大部分功能,但是在系统中频繁使用还是有点麻烦,我们根据自身的业务系统重新封装了一下简化我们的开 ...

最新文章

  1. 编程能力强化(4)——模拟SQL语句解析
  2. Kafka设计解析(八)- Exactly Once语义与事务机制原理
  3. linux串口中断_5年匠心之作,深度探索Linux虚拟化
  4. 干货:产品经理怎么做才能在需求评审中少挨打?
  5. 机器学习中目标函数、损失函数以及正则项的通俗解释
  6. Dubbo 新增本地 IDE 插件,快速创建样例工程
  7. sql增加字段默认为0_OUP2.0:mysql乐观锁不生效
  8. 如何在.Netcore控制台应用中使用依赖注入(4)
  9. 【C++】获取二维数组的行和列
  10. Github copilot: AI协助编程尝试
  11. react-tv-focusable
  12. 永洪BI配置GIS地图的方法
  13. Wireshark通过TCP协议抓取QQ好友IP以及定位
  14. 高斯过程分类和高斯过程回归_高斯过程回归建模入门
  15. Leetcode第904题
  16. 基于FPGA数字混频器的设计(1)
  17. U盘安装苹果系统教程,菜鸟一步一步也能成大牛
  18. 全网首发!老大众奥迪碟盒通信协议破解,可以模拟数码碟盒,外接AUX蓝牙U盘等音频设备
  19. 数据时代大数据管理,主要有哪些策略?
  20. 【PostgreSQL实战】之还原备份文件

热门文章

  1. 公式推导 11-14
  2. python 环形图_Python通过matplotlib画双层饼图及环形图简单示例
  3. 凸优化第五章对偶 5.3几何解释
  4. Struts2中过滤器和拦截器的区别
  5. Lucene创建索引和搜索索引
  6. android studio for android learning (六)应用程序窗体显示状态操作(requestWindowFeature等的应用)
  7. trace (矩阵的迹) 的性质
  8. 贝叶斯公式和共轭分布
  9. No qualifying bean of type;Unsatisfied dependency expressed through field 解决办法(总结全网)
  10. java条件触发,触发器触发条件是什么?更改数据时实现方法是什么?