Skip to Content
Menu
This question has been flagged
1 Odpoveď
5211 Zobrazenia

I wish to link(relate) two many2one lists, for example my custom module ng.machine and account.invoice

the account one:

'machine_ids' : fields.one2many('ng.machine', 'invoice_ids', 'Gépek'),

the machine one:

'invoice_ids' : fields.one2many('account.invoice', 'machine_ids', 'Számlák'),

but this gives me an error.If i change the fields to many2one then until i try to save everything works. when i try to save gives me this error:

ProgrammingError: can't adapt type 'dict'

How can i make it so that the 2 one2many list can relate to each other? bassickly on the machine's page see all the invoice that it is mentioned, and on the invoice see all the machines it mentions.

Avatar
Zrušiť
Best Answer

Sounds like you should use a many2many relation for this: each of your machines can be linked to X invoices, and each of your invoices can be linked to Y machines. Try using the following fields:

In your invoice class:

'machine_ids':
   fields.many2many(
    'ng.machine',
    'ng_machine_rel',
    'invoice_id',
    'machine_id',
    'Gépek'),

And in your machine class the same thing but in reverse:

'invoice_ids':
   fields.many2many(
    'account.invoice',
    'ng_machine_rel', # same relation still
    'machine_id', # ...but fields of the relation now go in different order
    'invoice_id',
    'Számlák'),

The documentation has some notes on m2m usage here: https://doc.openerp.com/trunk/server/03_module_dev_02/

Avatar
Zrušiť
Related Posts Replies Zobrazenia Aktivita
3
apr 20
10794
2
máj 19
4166
0
máj 16
4799
1
mar 23
2295
0
dec 22
2927