2014-10-27 125 views
0

我正在寻找一种在OpenERP中的表单视图上添加下载链接的方法,以便当我单击该链接时,我可以下载以前上传的图像。什么是最好的方式来做到这一点?图像下载链接 - OpenERP

回答

0

@Hassan查希尔

如果使用fields.binary那么你可以有这个功能,当您使用二进制领域不与外地使用任何插件,你会发现,odoo会将您上传的形象到您可以点击并下载的网址。

这里是自我计算二进制字段的例子。

import base64 
from osv import osv, fields 

class my_class(osv.osv_memory): 

    def get_file(self, cr, uid, ids, field_name=None, arg=None, context=None): 
     result = dict.fromkeys(ids) 
     for record_browse in self.browse(cr, uid, ids): 
      f = open(record_browse.file_path) 
      result[record_browse.id] = base64.encodestring(f.read()) 
      f.close() 
     return result 

    _name = 'my.class' 

    _columns = { 
     'file_path': fields.char('File Location', size=128), 
     'file': fields.function(get_file, method=True, store=False, type='binary', string="Download File"), 
    } 

,或者你可以添加简单的field.binary像:

'filedata': fields.binary('Label',filters='*.xml'), 

,并添加视图,将显示为可下载的URL字段。

+1

什么是二进制字段定义中的filters ='*。xml'? – StackUP 2014-10-28 02:26:29

+0

当我这样做时,下载图像不是PNG格式。当我尝试打开下载的文件时,我必须选择通过哪个程序打开它。 – 2014-10-28 05:50:29