首页 文章

二进制字段下载链接在Odoo的one2many字段内的treeview或listview中使用

提问于
浏览
8

我正在使用Odoo 8版本 .

我创建了一个名为enquiry_customer_date的新模型

在那个模型中,我设置了以下四个字段 .

  • partner_id(many2one),

  • enquiry_date(日期),

  • file_name(char)和

  • excel_file(二进制)

我已经提到了模型one2many与res.partner模型的关系

我使用下面的代码显示记录 .

<field name="enquiry_from_customer_ids">
    <tree string="Enquiry Lines">
        <field name="enquiry_date"/>
        <field name="file_name" invisible="1"/>
        <field name="excel_file" filename="file_name"/>
    </tree>    
</field>

这将在列表视图中显示正确的文件名 .

Face Problem:

当我下载链接时,它以文件名= base64和.bin扩展名存储 .

Question

如何在one2many字段中获得与上传文件名相同的下载链接?

UPDATED

我试过@danidee的答案 .

系统配置参数:

System configuration parameter

Treeview / Listview one2many字段

Treeview/Listview one2many field

OUTPUT:

enter image description here

预期产出:

文件应该与"Openerp_Customization_Needed.txt"一起下载

2 回答

  • 1

    默认情况下,文件和附件作为二进制文件存储在db中,但您可以通过设置 ir_attachement.location 参数来更改该行为

    得到 Settings/Parameters/System Parameters ,找 ir_attachment.location 它应该设置为 db 更改为

    file:///filestore

    请注意,现有附件和文件仍将存储在数据库中,但上传的任何新附件或文件都将存储在文件系统中,这样您就可以按原样下载文件原始格式

  • 1

    是的,您可以通过在树视图中添加按钮而不是直接在树视图中提供二进制字段名称来导出文件 . 请在enquiry_customer_date模型中添加以下代码

    @api.multi
    def export_file( self ):
        return {
            'type' : 'ir.actions.act_url',
            'url':   '/web/binary/saveas?model=ir.attachment&field=datas&filename_field=self.file_name&id=%s' % ( self.excel_file.id ),
            'target': 'self',
            }
    

    在xml文件中添加以下代码,

    <field name="enquiry_from_customer_ids">
        <tree string="Enquiry Lines">
            <field name="enquiry_date"/>
            <field name="file_name" invisible="1"/>
            <field name="excel_file" filename="file_name"/>
            <button name="export_file" string="Download" type="object" icon="gtk-ok" class="oe_highlight" />  
        </tree>    
    </field>
    

相关问题