odoo16 上传/下载 文件接口的实现

Odoo中PDF上传和下载接口实现,
文章介绍了在Odoo中如何实现上传PDF文件到ir.attachment模型,并提供了两个下载接口的示例,包括通过文件名搜索和直接从数据库获取附件数据的方式。

突然有个需求说需要编写一个上传pdf 接口

首先需要准备如下 xx.xx模型 module 部分 如下:

    attachment_count = fields.Integer(compute='_compute_attachment_count', string='附件数量', required=True)
    def _compute_attachment_count(self):
        # 附件数量计算
        attachment_data = self.env['ir.attachment'].read_group(
            [('res_model', '=', 'xx.xx.你的模型'), ('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_count = attachment.get(expense.id, 0)

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

view部分 代码如下

                <sheet>

    
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值