1.fields的属性包括
- string:在视图中field标题的字符串,不设置默认为变量名大写。
- help:用户鼠标放在字段名上面的提示字符串。
-
readonly:字段是否为只读(布尔值,默认为“false”)
-
required:是否需要字段值(布尔值,按默认``false`)
-
index:字段是否在数据库中编入索引(布尔值,按默认``false`)
-
default:字段的默认值;这是静态的值,或获取记录集并返回值的函数;使用
default=none
放弃字段的默认值。 -
states:将状态值映射到UI属性值列表的字典对;可能的属性有:“readonly”、“required”、“invisible”。注意:任何基于状态的条件都要求“state”字段值为在客户端用户界面上可用。这通常是通过将其包含在相关视图,但是可以在视图中重新指定。
-
groups:以逗号分隔的组XML ID列表(字符串);此仅限制对给定组的用户的字段访问
-
bool copy:记录时是否应复制字段值重复(默认值:对于普通字段为“true”,对于
一个2任意
和计算字段,包括属性字段和相关字段) -
string oldname:此字段的前一个名称,以便ORM可以在它迁移时自动重命名。
-
compute定义一个字段,该字段的值是计算出来的,而不是简单地从数据库中读取。特定于计算的属性字段如下所示。要定义这样的字段,只需提供一个值属性“compute=计算字段的方法的名称“
-
search:在字段上实现搜索的方法的名称(可选)
-
store:字段是否存储在数据库中(boolean,by在计算字段上默认为“false”)
-
compute_sudo:是否应将字段重新计算为超级用户绕过访问权限(布尔值,默认为“false”)。请注意,这对未存储的计算字段没有影响为“compute”、“inverse”和“search”提供的方法是模型方法。示例:
upper = fields.Char(compute='_compute_upper', inverse='_inverse_upper', search='_search_upper') @api.depends('name') def _compute_upper(self): for rec in self: rec.upper = rec.name.upper() if rec.name else False def _inverse_upper(self): for rec in self: rec.name = rec.upper.lower() if rec.upper else False def _search_upper(self, operator, value): if operator == 'like': operator = 'ilike' return [('name', operator, value)]
计算函数中的所有字段都应该包括在装饰器@api.depends中
这些字段决定何时重新计算字段;重新计算是自动并保证缓存/数据库的一致性。
默认情况下,计算字段不会存储到数据库中,并且即时计算。
添加属性``store=true``将存储数据库中字段的值。
存储字段的优点是对该字段的搜索是由数据库本身完成的。
劣势是它需要在必须重新计算字段时进行数据库更新。
-
inverse:反转方法(可选)
逆方法,顾名思义,是计算的逆方法。
调用的记录具有字段值,并且必须对字段依赖项应用必要的更改,以便计算给出了预期值。注意,计算字段没有默认情况下,反向方法是只读的。在执行对模型的实际搜索。它必须返回与条件:“字段运算符值”。 -
关联字段:related:
关联字段读取模型上的字段。如果没有重新定义属性,关联的字段属性由原来的属性指定。string
,help
,readonly`,
required,
groups,
digits,
size,
translate,
sanitize,
selection,
comodel_name,
domain,
context``.。默认情况下,相关字段的值不会存储到数据库中。