我有两个二进制字段。在销售订单行树视图中,我有一个打开向导的按钮。我选择并保存文件,它完美地保存在所选销售订单行的label_file
字段中。
问题是,当我打开向导时,我希望将其视为已保存的文件,但未生成,路径中只有字节。
第一
Class SaleOrderLine(models.Model):
_inherit = 'sale.order.line'
label_file = fields.Binary('Saved Label')
保存在SaleOrderLine中
秒
class OrderLineLabel(models.TransientModel):
_name = 'order.line.label'
label_file_show = fields.Binary('Label file')
@api.multi
def write_label_vals(self):
self.ensure_one()
sale_order_line = self.env['sale.order.line'].browse(self.env.context.get('active_ids'))
vals = {
'label_file': self.label_file,
}
sale_order_line.write(vals)
@api.model
def default_get(self, fields):
res = super(OrderLineLabel, self).default_get(fields)
order_line_id = self.env['sale.order.line'].browse(self.env.context.get('active_ids'))
status, headers, content = binary_content(model='sale.order.line', field='label_file', id=order_line_id.id,filename='test',download=True)
#tried like this
res['label_file_show'] = content
#or just like this
res['label_file_show'] = order_line_id.label_file
return res
这是打开向导时的外观。
您需要在二进制字段中添加filename
。
声明一个字符字段以保留名称:
label_file_name = fields.Char()
并使用filename
属性为二进制字段指定文件名:
<field name="label_file_name" invisible="True"/>
<field name="label_file_show" filename="label_file_name"/>
在write_label_vals
中再添加一行以保存文件名。
order_line_id.label_file_name = self.label_file_name
# vals = {'label_file': self.label_file, 'label_file_name': self.label_file_name}
在向导filename
方法中设置default_get
的值:
res['label_file_name'] = order_line_id.label_file_name