简而言之,Odoo中二进制字段的默认值是什么?
更具体地说,我试图根据某些记录中是否包含某些文件来构建计算字段(即记录中已完成字段数的一种状态栏)。
作为玩具示例,如果bin1和bin2是二进制字段并且bool是布尔值,那么我的进度将被计算为
progress = 100.0 * (1*bool + 1*(bin1 is not None) + 1*(bin2 is not None)) / 3
幸运的是,保存记录后,此计算工作正常。但是,在编辑模式下,进度显示为2/3。
这带来了二进制字段的默认值的问题,或者关于如何提取关于是否填充二进制字段的信息的任何想法。
答案 0 :(得分:1)
空二进制字段为False
,有值字段包含base64
编码字符串。
因此,在进行计算之前,您必须执行以下操作:
if item.bin_field:
bin_val = item.bin_field.decode('base64')
您的检查是否失败,因为您正在进行“身份比较”,因此您基本上说“is
我的价值与None
相同?”而不是检查是否布尔值为假。