odoo14 | 附件上传功能及实际使用

有时候,有的需求会要求在表单中增加一个附件上传的要求,就像下面一样

 这个其实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>

增加这几行代码来显示附件上传的按钮

然后重启服务并升级模块,即可查看效果。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Odoo 14的数据字典是一种用于定义和描述数据库表结构、字段属性和关系的工具。在Odoo开发中,数据字典是非常重要的,它提供了一个清晰的方式来组织和管理数据库模型。 数据字典中的主要元素包括表(模型)、字段、关系和约束。 表(模型)是数据字典的基本单元,它代表着一个数据库表。每个模型都有一个唯一的标识符和一个可选的表名。模型可以包含字段和关系,用于定义表的结构和属性。 字段是模型中的属性,用于存储和处理数据。字段可以是不同的类型,如字符、整数、日期、关联等。每个字段都有一个唯一的标识符和一个可选的字段名。字段还可以具有一些属性,如必填、只读、唯一等。 关系用于在模型之间建立联系。在Odoo中,主要有三种类型的关系:一对一关系、一对多关系和多对多关系。关系可以通过字段定义,其中涉及到一个字段类型为Many2one、One2many或Many2many。 约束用于限制字段值的范围或特性。在Odoo中,可以使用不同的约束类型,如唯一约束、非空约束和长度约束。约束可以直接在字段定义中添加,以确保数据的完整性和一致性。 通过使用Odoo 14的数据字典,开发人员可以清晰地定义和管理数据库模型,为应用程序提供可靠和高效的数据结构。此外,数据字典还支持自动化的数据库表创建和更新过程,使系统维护更加简单和方便。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值