Skip to Content
Menu
Musisz się zarejestrować, aby móc wchodzić w interakcje z tą społecznością.
To pytanie dostało ostrzeżenie
1 Odpowiedz
5186 Widoki

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.

Awatar
Odrzuć
Najlepsza odpowiedź

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/

Awatar
Odrzuć
Powiązane posty Odpowiedzi Widoki Czynność
3
kwi 20
10757
2
maj 19
4147
0
maj 16
4776
1
mar 23
2228
0
gru 22
2867