OpenERP中相关字段的用途是什么?

10 投票
4 回答
11895 浏览
提问于 2025-04-16 05:11

有人能给我解释一下关于相关字段的事情吗?比如说:

  • 它是怎么使用的
  • 它能带来什么帮助
  • 在什么情况下我应该使用fields.related

如果有人能提供一个关于fields.related实际使用的小例子,我会非常感激。

4 个回答

1

你可以在OpenERP的开发者文档中找到一个例子。在数据库规范化中,这个概念叫做传递依赖

8

在使用相关字段的时候,首先要选择哪个字段要关联。例如,我正在创建一个新的模块来添加学生的详细信息。在这里,学生实际上是指合作伙伴。所以我们用 _rec_name='partner_id' 来表示。在 res.partner 中,你可能见过 ref 字段。这个 ref 字段里的值会被用作学生模块的 internal_number

所以我们在这里做的事情是

class student(osv.osv):
    _name='student'
    _rec_name='partner_id'
    _columns ={
           'partner_id':fields.many2one('res.partner','Name'),
           'internal_number':fields.related(
                   'partner_id',
                   'ref',
                   type='char',
                   size=16,
                   string='Internal Number',
                   ),
           }

如果我们想显示的相关字段是一个选择字段,那么你需要提供 type='selection',并且 selection=[(case1,case1),(case2,case2),...],这是一系列的元组。如果它是一个多对一字段,那么就用 type='many2one'relation='model_name'

9

这个功能让你可以从一个相关的表格中提取某个字段。想了解更多细节,可以查看开发者手册,其中一个例子是sale_order_line类中的order_partner_id字段。在5.14版本中,这个字段在addons/sale/sale.py的第806行。

我经常发现我想在一个列表中显示某个字段,但这个字段其实是在父记录上,而不是我正在列出的实际表格里。

撰写回答