Odoo

时间:2016-06-01 09:06:02

标签: python-2.7 openerp odoo-8

简而言之,Odoo中二进制字段的默认值是什么?

更具体地说,我试图根据某些记录中是否包含某些文件来构建计算字段(即记录中已完成字段数的一种状态栏)。

作为玩具示例,如果bin1和bin2是二进制字段并且bool是布尔值,那么我的进度将被计算为

progress = 100.0 * (1*bool + 1*(bin1 is not None) + 1*(bin2 is not None)) / 3

幸运的是,保存记录后,此计算工作正常。但是,在编辑模式下,进度显示为2/3。

这带来了二进制字段的默认值的问题,或者关于如何提取关于是否填充二进制字段的信息的任何想法。

1 个答案:

答案 0 :(得分:1)

空二进制字段为False,有值字段包含base64编码字符串。

因此,在进行计算之前,您必须执行以下操作:

if item.bin_field:
    bin_val = item.bin_field.decode('base64')

您的检查是否失败,因为您正在进行“身份比较”,因此您基本上说“is我的价值与None相同?”而不是检查是否布尔值为假。