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

Python OpenERP中相关字段的用途是什么?,python,openerp,Python,Openerp,有人能给我解释一下相关领域的情况吗。比如说- 它是如何使用的 如何帮助它 对于哪种情况,我应该使用fields.related 如果有人能为fields.related的实际使用提供一个小示例,我将不胜感激。它允许您从相关表中提取字段。您可以在中找到更多详细信息,其中一个示例是sale\u order\u line类的order\u partner\u id字段。在5.14版中,这是addons/sale/sale.py的第806行 我经常发现我想在列表中显示一个字段,但它在父记录上,而不是

有人能给我解释一下相关领域的情况吗。比如说-

  • 它是如何使用的
  • 如何帮助它
  • 对于哪种情况,我应该使用fields.related

如果有人能为fields.related的实际使用提供一个小示例,我将不胜感激。

它允许您从相关表中提取字段。您可以在中找到更多详细信息,其中一个示例是
sale\u order\u line
类的
order\u partner\u id
字段。在5.14版中,这是addons/sale/sale.py的第806行


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

您可以在OpenERP开发人员文档中找到一个例子,在数据库规范化中它被称为。

使用相关字段时,您必须首先选择要关联的字段。例如,我正在创建一个用于添加学生详细信息的新模块。在这里,学生实际上是合作伙伴。因此采用了
\u rec\u name='partner\u id'
。在
res.partner
中,您可能已经看到了
ref
字段。
ref
字段中的值作为学生模块的
内部编号

所以我们在这里做的是

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),…]
,一个元组列表。如果是manyOne字段,则
type='manyOne'
relation='model\u name'

相关字段会将控件引导到另一个表。父表将与子表具有一对一关系,子表与父表具有一对一关系。 例如:account.invoice to account.invoice.line与以下字段匹配

“发票行”:fields.one2many('account.invoice.line','invoice\u id','invoice line',readonly=True,states={'draft':[('readonly',False)])

并且account.invoice.line与account.invoice相关,其代码与下面的代码相反


“发票id”:fields.manyOne('account.invoice','invoice Reference',ondelete='cascade',select=True),

我也有同样的想法,我也尝试过《开发者手册》中的例子,很好,在以前的版本中,我用函数字段来实现这一点-现在有相关字段很好-它可以达到n级!宾果!!!-感谢'country\u id':字段.related('partner\u id','country\u id',type='manyOne',relation='res.country',string='country'),