store = True
时间: 2024-03-07 08:45:52 浏览: 15
在Python中,`store = True`是一个参数赋值的语法。当你在定义函数或方法时,可以使用`store = True`来指示解析器将该参数的值存储在函数对象中,以便稍后可以访问它。
通常情况下,函数的参数只在函数的执行期间存在,并且在函数执行完毕后就会被销毁。但是,如果你将参数的`store`属性设置为`True`,那么该参数的值将会被存储在函数对象中,以便稍后可以通过函数对象来访问。
这种技术通常用于装饰器函数或其他需要在函数之外访问参数值的情况。通过将参数的值存储在函数对象中,你可以在函数之外访问和操作这些值。
相关问题
compute字段加store=True是实时计算的吗,store=False不是实时计算吗
在Odoo中,`compute`字段的行为取决于`store`属性的设置。
当`store`属性设置为`True`时,表示该字段将被存储在数据库中,并且会在每次保存记录时根据计算函数进行实时计算和更新。这意味着每当记录的相关字段发生更改时,计算函数会被触发并更新存储字段的值。
当`store`属性设置为`False`时,表示该字段不会存储在数据库中,而是根据计算函数的结果进行实时计算。这意味着每次访问该字段时,都会运行计算函数来获取最新的值。
因此,当`store=True`时,字段的值是实时计算的,并且在数据库中进行存储。当`store=False`时,字段的值是基于计算函数的结果进行实时计算的,而不存储在数据库中。
需要注意的是,使用`store=True`可能会对性能产生一定影响,因为每次保存记录时都会触发计算函数并更新存储字段的值。因此,在使用`store=True`之前,请确保评估性能需求和计算函数的复杂性。
code = fields.Char(string='唯一编号') item = fields.Many2one('roke.item.information',string='物料') Destination = fields.Many2one('roke.warehouse.location', string='仓库位置') model = fields.Char(string='型号') remark = fields.Text(string='备注') price = fields.Float(string='单价') quantity = fields.Float(string='数量') occupied_quantity = fields.Float(string='已占有数量',compute='_compute_occupied_quantity', store=True) available_inventory = fields.Float(string='可用库存',compute='_compute_available_inventory', store=True) storage = fields.Many2one('roke.storage',string='入库') outbound = fields.Many2one('roke.maintenance.management',string='出库')
这是一个 Python 中的 Odoo 数据模型类,包含了一些字段,包括:唯一编号、物料、仓库位置、型号、备注、单价、数量、已占有数量、可用库存、入库、出库等。其中,物料和仓库位置是 Many2one 类型,表示与其他模型类之间存在多对一的关系;已占有数量和可用库存是通过 _compute_occupied_quantity 和 _compute_available_inventory 方法计算得来的。这些字段用于描述某个物料在某个仓库的库存情况,包括其数量、价格、存储和出库信息等。