odoo 附件上传的三种姿势

2023-11-13

odoo 附件上传的三种姿势

因公司业务需要实现上传附件功能,一番折腾找到了三种附件上传的姿势,不过好像用处不大。。。。

1. 下载 odoo 自带模块

在应用里搜索附件列出以及文档索引,安装模块即可

附件上传模块

这样在编辑界面就可以看见附件上传按钮,上传即可

在这里插入图片描述



2.代码按钮上传第一种方式

在 model 类中添加如下代码

 attachment_number = fields.Integer(compute='_compute_attachment_number', string='附件上传功能')

@api.multi
def _compute_attachment_number(self):
    """附件上传"""
    attachment_data = self.env['ir.attachment'].read_group(
        [('res_model', '=', 'cms_su'), ('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.multi
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', '=', 'cms_su'), ('res_id', 'in', self.ids)]
    res['context'] = {'default_res_model': 'cms_su', 'default_res_id': self.id}
    return re

在这里插入图片描述

在 xml 视图文件添加如下代码

<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>

在视图中就可以显示按钮,实现附件上传

在这里插入图片描述



3.代码按钮上传第二种方式

在 model 类中添加如下代码

@api.multi
def attachment_image_preview(self):
    """附件上传 第二种方式"""
    self.ensure_one()
    # domain可以过滤指定的附件类型 (mimetype)
    domain = [('res_model', '=', self._name), ('res_id', '=', self.id)]
    return {
        'domain': domain,
        'res_model': 'ir.attachment',
        'name': u'附件管理',
        'type': 'ir.actions.act_window',
        'view_id': False,
        'view_mode': 'kanban,tree,form',
        'view_type': 'form',
        'limit': 20,
        'context': "{'default_res_model': '%s','default_res_id': %d}" % (self._name, self.id)
    }

在 xml 视图文件添加如下代码

<div class="oe_button_box" name="button_box">
    <button name="attachment_image_preview" type="object" class="oe_stat_button" icon="fa-image">
        <!--<field name="img_count" widget="statinfo"/>-->
        <div class="o_stat_info">
            <span class="o_stat_text">附件管理</span>
        </div>
    </button>
</div>

在视图会显示按钮,同样可以实现附件上传

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

odoo 附件上传的三种姿势 的相关文章

随机推荐

  • CSS3滤镜——页面黑白灰度处理

    每当遭遇重大灾难 比如之前的非典 汶川地震 以及前几天清明节对新冠肺炎逝世同胞的哀悼 各大主流网站也会呈黑白两色 今天偶然搜了下实现机制 原来是如此的简单 也对之前不怎么了解的滤镜刮目相看了 将以下样式代码放到页面中即可实现页面黑白处理 这
  • 数据结构和算法之插入排序

    一 插入排序 插入排序是一种简单直观的排序算法 它的原理是通过构建有序序列 对于未排序数据 在已排序序列中从后向前扫描 找到相应位置并插入 mermaid svg v2YbPqchr8qWCPvn font family trebuchet
  • FreeRTOS,串口中断接收中使用xQueueOverwriteFromISR()函数,程序卡死在configASSERT

    原因 UART的中断优先级设置的太高 高于了configMAX SYSCALL INTERRUPT PRIORITY宏定义的安全中断等级 UART的中断等级小于等于宏定义的优先等级即可
  • 学习新技术的10个建议

    学习新技术的10个建议 http www apkbus com portal php mod view aid 1780 我们生活在一个振奋人心的时代 我们可以越来越方便廉价地获得大量学习资源 这些资源的传播载体由最初的教室被变成了博客 技
  • “范式杯”2023牛客暑期多校训练营1

    D Chocolate 题意 有n m的矩阵 分成n m块 每一块都有一块巧克力 然后A和B两个人 进行博弈 选择一个下标 i j 将左上角 1 1 到 i j 的巧克力全部吃掉 如果谁是最后一个吃完全部巧克力 那么就输了 每人至少吃一块巧
  • 支付宝API接口开发相关文档以及实例

    支付宝实物即时到账接口 在下载该接口之前 请确定你已经签约了即时到账的服务协议 并且账号已经开通了即时到账的权限 口常见错误问题搜集 http union alipay com alipay zhichi shiwu 商家工具FAQ pdf
  • Python兼职:800-1500元/天,多做多得,时间自由!

    以下三种情况 哪个让你最绝望 好不容易找到一个资源齐全的网站 不是要收费就是要翻墙 每次想看的音乐会 想抢的假期车票 永远抢不到 工资4500 生活费1000 花呗欠了10000 说实话 反正我真的选不出 每一个都让我崩溃 但是我将这个测试
  • kibana创建索引_Elasticsearch 实战案例(索引切分、模板、别名、数据迁移)

    背景 基于ELK搭建的日志平台 前期匆忙建设过程中一些参数和设计未做过多的考虑 上线后就需要不断根据实际情况做调整 而一些调整限于ELK的一些特性 一旦操作不当就会出现丢数据 数据写入异常 数据查不到等情况 因此如何在这种背景下 做到对使用
  • 海康威视智能终端获取实时人脸体温识别记录二次开发java

    需求 使用的是海康威视人脸带体温识别智能终端 根据主动获取设备事件现在不支持获取体温 所以实时获取 参考设备布防 设备登陆注册省略 见 海康威视人脸识别智能终端获取设备事件二次开发Java 设备布防 Thread sleep 100000
  • Flutter 应用开发的pubspec.yaml文件说明

    pubspec yaml文件简介 作用 pubspec yaml是Flutter项目中的配置文件 它用于定义项目的依赖项 资源文件以及其他相关配置 示例 name audioplayers example description Demon
  • 进程和线程的区别

    转自文章进程和线程的区别 面试必考 进程和线程的区别 1 根本区别 进程和线程的根本区别是进程是操作系统 OS 资源分配的基本单位 而线程是处理器 CPU 任务调度和执行的基本单位 2 资源开销 每个进程都有独立的代码和数据空间 程序上下文
  • 【Nginx系列】- Nginx源码复杂安装

    目录 一 下载nginx源码 二 依赖环境准备 三 编译安装 四 加入系统服务 Nginx安装方式有多种 本篇介绍源码复杂安装 目的是进一步了解Nginx 一 下载nginx源码 官网下载最新稳定版 nginx download 二 依赖环
  • 23种设计模式总结

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 23种设计模式总结 设计模式是一套被反复使用 多数人只晓得 经过分类编目的的 代码设计经验的总结 1 简单工厂模式 建立一个工厂类 对同一接口下的类进行实例化的创建 也就是在
  • Otter源码深入详解(二)

    先从manager的三个子模块开始分析 一 biz模块 autokeeper AutoKeeperCollector类 继承自InitializingBean afterPropertiesSet 调用后 调用startCollect st
  • 参考系列2:优化库——ceres(一)快速概览

    目录 1 ceres快速概览 1 1 问题建模和求解 1 1 1 问题建模 1 1 2 问题求解 1 2 ceres使用流程 1 3 求导方法 构建代价函数 STEP2 1 3 1 解析求导 自定义求导 SLAM中常用的 1 3 2 其他求
  • jmap heap输出解析

    jmap heap输出解析 jmap简介 jmap语法 jmap heap查看jvm参数 堆栈信息 jmap heap输出jvm参数解析 jmap简介 jmap JVM Memory Map 作用一方面是获取dump文件 堆转储快照文件 二
  • [分享] Python实现的基于深度学习的手写数字识别算法

    本文将采用深度学习中的卷积神经网络来训练手写数字识别模型 使用卷积神经网络建立合理的模型结构 利用卷积层中设定一定数目的卷积核 即滤波器 通过训练数据使模型学习到能够反映出十个不同手写提数字特征的卷积核权值 最后通过全连接层使用softma
  • Android studio安装与配置

    1 首先下载Android studio安装包 下载地址为 http www android studio org 这里采用3 0版本进行演示 对应安装包为android studio ide 171 4408382 windows exe
  • 【微服务】Nacos:发现、配置和管理微服务

    Nacos 发现 配置和管理微服务 Nacos 在阿里巴巴起源于 2008 2008 2008 年五彩石项目 完成微服务拆分和业务中台建设 成长于十年双十一的洪峰考验 沉淀了简单易用 稳定可靠 性能卓越的核心竞争力 随着云计算兴起 2018
  • odoo 附件上传的三种姿势

    odoo 附件上传的三种姿势 因公司业务需要实现上传附件功能 一番折腾找到了三种附件上传的姿势 不过好像用处不大 1 下载 odoo 自带模块 在应用里搜索附件列出以及文档索引 安装模块即可 这样在编辑界面就可以看见附件上传按钮 上传即可