# attachment_widget **Repository Path**: chapsticks/attachment_widget ## Basic Information - **Project Name**: attachment_widget - **Description**: odoo8;附件控件,附件字段的编辑与展示,适用于展示常规的文件 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2016-10-24 - **Last Updated**: 2021-10-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ``` #控件使用说明 --model字段设置 --8.0版本老的api class demo(osv.osv): def _data_get(self, cr, uid, ids, name, arg, context=None): if context is None: context = {} datas = [] att = self.pool.get('ir.attachment') attIds = att.search(cr, uid, [('res_model','=',self._name),('res_id','=',ids[0])]) attObjs = att.browse(cr, uid, attIds) for i in attObjs: if i.file_type_icon!='webimage': html = """
""" % { 'parentModel':self._name, 'parendId':ids[0], 'attId':i.id, 'attIcon':(i.file_type_icon or 'unknown'), 'filename':i.name } else: html = """""" % { 'parentModel':self._name, 'parendId':ids[0], 'attId':i.id, 'filename':i.name } datas.append({ 'id':i.id, 'file_type_icon':i.file_type_icon, 'datas_fname':i.datas_fname, 'data':att._file_read(cr, uid, i.store_fname), 'html':html }) return {ids[0]:datas} def _data_set(self, cr, uid, id, name, value, arg, context=None): return True _columns = { 'datas': fields.function(_data_get, fnct_inv=_data_set, string='测试附件', type="binary", nodrop=True), } 8.0版本新的api from openerp import models, fields class demo(models.Model): _inherit = 'demo' datas = fields.Binary(compute='_data_get', inverse='_inverse_display_name', string='测试附件') @api.one def _data_get(self): context = self.env.context if context is None: context = {} datas = [] att = self.env['ir.attachment'] attObjs = att.search([('res_model','=',self._name),('res_id','=',self.id)]) for i in attObjs: if i.file_type_icon!='webimage': html = """""" % { 'parentModel':self._name, 'parendId':self.id, 'attId':i.id, 'attIcon':(i.file_type_icon or 'unknown'), 'filename':i.name } else: html = """""" % { 'parentModel':self._name, 'parendId':self.id, 'attId':i.id, 'filename':i.name } datas.append({ 'id':i.id, 'file_type_icon':i.file_type_icon, 'datas_fname':i.datas_fname, 'data':att._file_read(i.store_fname), 'html':html }) self.datas = datas @api.one def _inverse_display_name(self): pass xml控件使用说明