【问题标题】:Image download link - OpenERP图片下载链接——OpenERP
【发布时间】:2014-10-27 12:10:38
【问题描述】:

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

【问题讨论】:

    标签: image download openerp attachment


    【解决方案1】:

    @Hassan Zaheer

    如果您使用fields.binary,那么您可以拥有该功能,当您使用二进制字段时,不要使用带有该字段的任何小部件,您会注意到odoo会将您上传的图片转换为您可以点击的url并下载。

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

    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 的字段。

    【讨论】:

    • 二进制字段定义中的filters='*.xml'是什么?
    • 当我这样做时,下载图像不是 png 格式。每当我尝试打开下载的文件时,我必须选择要通过哪个程序打开它。
    猜你喜欢
    • 2011-09-11
    • 2018-06-26
    • 2012-08-27
    • 2011-01-25
    • 1970-01-01
    • 2011-04-08
    • 1970-01-01
    • 2022-08-15
    • 2015-09-29
    相关资源
    最近更新 更多