【问题标题】:related attributes , related fields on inherited view odoo相关属性,继承视图odoo上的相关字段
【发布时间】:2016-08-11 12:49:59
【问题描述】:

什么是相关属性,可以用来做什么?以及如何添加相关属性。 我正在尝试为总金额添加一个相关字段。

【问题讨论】:

    标签: openerp field odoo-view


    【解决方案1】:

    相关领域

    在这种情况下,我们需要从任何其他表中获取值,但我们已经在模型中拥有该表的引用,在这种情况下,我们可以利用一个功能,我们可以通过以下方式从引用表中添加多个字段在我们的模型中只有一个引用字段。

    源模型的一个关系字段(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)
    

    注意

    只有在您保存记录后,该字段中的值才可用。

    当您更新新定义的相关字段中的值时 也将在源字段中更新,尽管它总是可取的 在新定义的字段中设置只读。

    【讨论】:

      【解决方案2】:

      在 Odoo 相关字段的上下文中,它的值将是

      1. 从另一个表(相关表)读取-->store=False
      2. 从另一个表中读取,但存储在其定义的表中 --> store=True

      示例(Odoo V8):

      1. sale.ordercurrency_id:在product_pricelist中持久化
      2. stock_quant packaging_type_id:在product_packaging 和stock_quant 中持久化。每次您更改 product_packing 上的值时,它也会在 stock_quant 上更新,反之亦然。

      【讨论】:

        【解决方案3】:

        **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)

        希望这会有所帮助!

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多