字段中domain的用法
-
代码如下:
class PartOption(models.Model): _name = 'part.option' parent_id = fields.Many2one('part.option', string='Parent Option')
class RobotProtectionType(models.Model): _name = 'robtype' _description = 'Rob Type' option_id = fields.Many2one('part.option', string='Part Option', required=True, domain="[('parent_id','=', False)]")
问题:
1、在option_id字段中有个domain筛选,domain要表达的含义是parend_id不为空的意思吗?如果是,那么这样表达是否包含了"",None,Null的三种情况?
2、如果真的需要判断某个字段为假,又怎样用domain表示?新人一枚,请大家指教。
-
首先,要分清"", None,Null的含义, 如果是在python端,它是没有Null的说法。 ""是有值的: 表示该字段值为空字符, 一定要分清值为空和值为空字符的区别。 None是该字段未赋值,None在数据库端表现为对应的Column值为Null(为空)。
另外,domain="[('parent_id','=', False)]"意思是:筛选出父表PartOption(ORM, class PartOption默认转为table PartOption)中parent_id为空(未赋值)的记录 (parent_id为空字符不能算,虽然人眼看不见), 如果form view中有 field name="option_id" />, 它会是一个下拉列表,显示的内容是筛选出的记录的 name列的值(默认)。
还有: 2、如果真的需要判断某个字段为假,又怎样用domain表示? 字段为假,说明该字段为Boolean, 比如说res_partner有is_company列, 在表中 is_company列值为 False或者为True,还是用 domain="[('is_company','=', False)]"。
-
@Felix_Cheng
懂了,谢谢你。:sisi: