当受影响整数时,OpenERP是否将False值转换为NULL?

时间:2014-01-30 10:37:27

标签: python orm openerp odoo

OpenERP内,当您在python中定义新的字段并将False设置为默认值时,该字段将在数据库中设置为NULL,{{1}照顾转换。 ORM是否也以相同的方式转换整数类型,或者我应该小心它可以将其转换为0而不是ORM

我在哪里可以找到NULLOSV)的动态值转换规则?

1 个答案:

答案 0 :(得分:4)

是的,在发布ORM' .search'查询,传入Python False来表示数据库空值。 ORM没有''运算符,因此您必须查询('列',' =',False)。同样,当' .browse'返回行,数据库空值转换为Python False。

我认为这样做的原因是xmlrpc(用于将这些查询发送到您的OpenERP服务器)没有任何方法可以在其开箱即用的“开箱即用”中表示无/空值。组态。可以将Xmlrpc配置为允许空值,但OpenERP不使用它。

这引发的一个显而易见的问题是可以为空的布尔字段发生了什么,其中False是一个有效值?基于个人实验:当使用可空布尔字段创建行时,如果传递Python False,则数据库最终包含false,而不是其他数据类型的null。我不认为有任何方法可以将这些字段设置为null:它无法传递Python None,也没有将默认值设置为None而根本不传递此列。

这在哪里记录?我无法找到它。

这一切都很疯狂。欢迎来到Odoo!