在OpenERP
内,当您在python中定义新的字段并将False
设置为默认值时,该字段将在数据库中设置为NULL
,{{1}照顾转换。 ORM
是否也以相同的方式转换整数类型,或者我应该小心它可以将其转换为0而不是ORM
?
我在哪里可以找到NULL
(OSV
)的动态值转换规则?
答案 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!