我使用的是Odoo 8版本。
我创建了一个名为 enquiry_customer_date 的新模型
在该模型中,我设置了以下四个字段。
我已经提到了与 res.partner 模型的模型one2many关系
我在下面的代码中使用了显示记录。
<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>
这将在列表视图中显示正确的文件名。
面子问题:
当我下载链接时,它会以 .bin 扩展名存储文件名= base64。
问题:
如何在 one2many 字段中获取与上传文件名相同的工作下载链接?
已更新
我试过@danidee的答案。
系统配置参数:
Treeview / Listview one2many字段
输出:
预期产出:
应使用&#34; Openerp_Customization_Needed.txt&#34;
下载文件答案 0 :(得分:1)
默认情况下,文件和附件作为二进制文件存储在数据库中,但您可以通过设置ir_attachement.location
参数
选择Settings/Parameters/System Parameters
,查找ir_attachment.location
它应设置为db
将其更改为
file:///filestore
请注意,现有附件和文件仍将存储在数据库中,但上传的任何新附件或文件都将存储在文件系统中,这样您就可以按原样下载文件原始格式
答案 1 :(得分: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>