当前位置:网站首页>odoo14 | 附件上传功能及实际使用
odoo14 | 附件上传功能及实际使用
2022-07-31 09:49:00 【埃尔文编程实验室】
有时候,有的需求会要求在表单中增加一个附件上传的要求,就像下面一样

这个其实odoo官方已经写了这个功能,里面可以上传附件也可以
但需要注意附件上传按钮只有必填项填完后才能点击进去进行上传附件动作

上传附件后,其他用户在查看这一记录时,就能通过右上角的上传附件按钮进去查看该记录所附带的附件内容(需要下载到本地查看)了。
实现过程
首先在字段下添加对应的方法
# 附件上传
def _compute_attachment_number(self):
"""附件上传"""
attachment_data = self.env['ir.attachment'].read_group([
('res_model', '=', '你当前的模型名_name的内容'),
('res_id', 'in', self.ids)], ['res_id'], ['res_id'])
attachment = dict((data['res_id'], data['res_id_count']) for data in attachment_data)
for doc in self:
doc.attachment_number = attachment.get(doc.id, 0)
def 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', '=', '你当前的模型名_name的内容'), ('res_id', 'in', self.ids)]
res['context'] = {'default_res_model': '你当前的模型名_name的内容', 'default_res_id': self.id}
return res这是odoo14的固定写法,两个配套的方法,只需修改代码中中文提示的部分,替换成你的模型名_name='odoo.study'中的odoo.study,即可使这两个方法生效。
之后进入xml视图中,在form视图中的<sheet>标签中
<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>增加这几行代码来显示附件上传的按钮
然后重启服务并升级模块,即可查看效果。
边栏推荐
猜你喜欢
随机推荐
NowCoderTOP17-22 二分查找/排序——持续更新ing
loadrunner录制问题
Mybaits 常用问题详解
Feign介绍
感情危机,朋友的网恋女友要和他闹分手,问我怎么办
Kotlin入门介绍篇
模块八
Binary tree search and backtracking problem (leetcode)
Rich text editor Tinymce
js空气质量aqi雷达图分析
VMware下安装win10
qt pass custom structure parameters in different threads
【NLP】Transformer理论解读
5.for in 和 for of区别和使用
安装sambe
GVINS论文阅读笔记
如何将亚马逊广告添加到您的 WordPress 网站(3 种方法)
多版本node的安装与切换详细操作
loadrunner-controller-view script与load generator
canvas粒子变幻各种形状js特效









