Ir al contenido
Menú
Se marcó esta pregunta
1 Responder
5185 Vistas

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
Descartar
Mejor respuesta

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
Descartar
Publicaciones relacionadas Respuestas Vistas Actividad
3
abr 20
10757
2
may 19
4147
0
may 16
4776
1
mar 23
2227
0
dic 22
2867