【发布时间】:2016-08-11 12:49:59
【问题描述】:
【问题讨论】:
【问题讨论】:
相关领域
在这种情况下,我们需要从任何其他表中获取值,但我们已经在模型中拥有该表的引用,在这种情况下,我们可以利用一个功能,我们可以通过以下方式从引用表中添加多个字段在我们的模型中只有一个引用字段。
源模型的一个关系字段(Many2one)是强制性的 在目标模型中创建关系字段。
考虑 res.currency 模型中的 company_currency_id 字段在目标模型中,然后您可以在目标模型中获取该货币的当前汇率。 p>
语法:v7
_columns = {
'current_rate': fields.related('company_currency_id','rate_silent', type='float', relation='res.currency',digits_compute=dp.get_precision( 'Account'), string='Current Rate', readonly=True),
}
这里,
company_currency_id => 与新字段关联的同一模型中的字段,
rate_silent => 是您要与新字段关联的字段,表示来自源模型的字段,
relation => 是源模型名称,
type => 是源字段的数据类型
语法:v8 及更新版本
current_rate = fields.Float(string='Current Rate', related='company_currency_id.rate_silent', store=True, readonly=True)
注意:
只有在您保存记录后,该字段中的值才可用。
当您更新新定义的相关字段中的值时 也将在源字段中更新,尽管它总是可取的 在新定义的字段中设置只读。
【讨论】:
在 Odoo 相关字段的上下文中,它的值将是
store=False
store=True
示例(Odoo V8):
sale.ordercurrency_id:在product_pricelist中持久化stock_quant packaging_type_id:在product_packaging 和stock_quant 中持久化。每次您更改 product_packing 上的值时,它也会在 stock_quant 上更新,反之亦然。【讨论】:
**Related Field* 用于当您想从另一个模型中提取值时,您可以在字段上使用相关字段。
这里有一个例子。
order_id = fields.Many2one(comodel_name='sale.order', 'Sale Order')
order_amount = fields.Monetary(string='Order Amount',
store=True,
related='order_id.amount_total')
您必须在模型中添加与您要访问字段的模型相关的 Many2one 字段。在我们的例子中,模型是 sale.order。
使用 related kwarg,您可以关联 Many2one 字段中定义的相关模型的字段。在我们的例子中是 order_id。
设置 store kwarg 将自动将值存储在数据库中。使用新的 API,相关字段的值将自动更新。(Reference)
希望这会有所帮助!
【讨论】: