10

誰かが私に関連分野について何か説明してもらえますか?例えば ​​-

  • 使用方法
  • どのようにそれを助けることができるか
  • どのようなシナリオでfields.relatedを使用する必要がありますか

誰かがfields.relatedの実際の使用法の小さな例を提供できれば幸いです。

4

4 に答える 4

9

関連するテーブルからフィールドをプルできます。詳細については、開発者向けの本を参照してください。例として、クラスのorder_partner_idフィールドがあります。sale_order_lineバージョン5.14では、それはの806行にありaddons/sale/sale.pyます。

リストにフィールドを表示したいことがよくありますが、リストしている実際のテーブルではなく、親レコードにあります。

于 2010-10-08T19:42:09.070 に答える
8

関連フィールドを使用する場合は、最初に関連するフィールドを選択する必要があります。たとえば、学生の詳細を追加するための新しいモジュールを作成しています。ここでは、学生が実際にパートナーです。あなた_rec_name='partner_id'はフィールドres.partnerを見たことがあるかもしれませんrefrefフィールドの値は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),...]ます。それがmany2oneフィールドの場合、type='many2one'そしてrelation='model_name'

于 2011-11-29T10:05:37.650 に答える
1

OpenERP開発者向けドキュメントに例があります。データベースの正規化では、推移的な依存関係と呼ばれます。

于 2011-05-09T21:49:59.103 に答える
1

関連フィールドは、コントロールを別のテーブルに導きます。親テーブルは子テーブルと1対多の関係を持ち、子テーブルは親テーブルに対して多対多の関係を持ちます。例:account.invoiceからaccount.invoice.lineへの次のフィールド

'invoice_line':fields.one2many('account.invoice.line'、'invoice_id'、'Invoice Lines'、readonly = True、states = {'draft':[('readonly'、False)]})、

account.invoice.lineは、次のコードが逆になっているaccount.invoiceに関連しています。

'invoice_id':fields.many2one('account.invoice'、'Invoice Reference'、ondelete ='cascade'、select = True)、

于 2012-04-19T04:55:05.013 に答える