İçereği Atla
Menü
Bu soru işaretlendi
3 Cevaplar
19775 Görünümler

Hi, I’m writing a custom module, with custom models.

One of this model inherits from res.partner, but, according to Odoo inheritance, I’m in the case « _name = my_model / _inherits = res.partner ».

If I‘m in the case _name = res.partner / inherits = res.partner : there is no problem. But as soon as I use a different _name, and add some custom fields for this specific model, I’ve got this message from Odoo.sh :

Many2many fields my_model.channel_ids and res.partner.channel_ids use the same table and columns
 

I think I understand the message, it’s due to the fact that as I inherit from res.partner, and res.partner use channels (with mail.thread), there is a problem with column names.

But I’m wondering :

1) how can I solve this ? Do I have to rewrite everything about the message/channels ?? It would make a lot of work !

2) is there any way to handle this « automatically » ?

I even tried to add mail.thread in inherit, but no change


Here is an exemple :

from odoo import models, fields, api, _


class Trainer(models.Model):

_inherit=['res.partner','mail.thread']

_name = 'trainer'


[...custom fields...]


Error : Many2many trainer.channel_ids and res.partner.channel_ids use the same table and columns

Avatar
Vazgeç
En İyi Yanıt

Hi,



The issue is because of res.partner and your custom class using same table (mail_channel_partner) so that it is throwing error. to avoid that we have to create new table(mail_channel_profile_partner). Create one more many2many field in your custom module. like following.


channel_ids = fields.Many2many('mail.channel, 'mail_channel_profile_partner', 'partner_id', 'channel_id', copy=false)

Avatar
Vazgeç

This solved the problem. Thanks

En İyi Yanıt

Hello @Pierre, have you found the solution to this issue, i have the same.

my code works fine in Odoo11, now i'm trying to migrate it to Odoo13 and get this error

Avatar
Vazgeç
En İyi Yanıt
that's because you specified "relation=xxx" on multiple models. A relation table can only be used for one model. use relation=ABC for model A and relation=XYZ for model B
Avatar
Vazgeç

how to solve this issue. i have in inherited class (sale order line) only in my custom class (sale order line child).I dont have any fields defined on that,still i m getting this error.

Change relation name in your model

İlgili Gönderiler Cevaplar Görünümler Aktivite
5
Haz 20
9302
1
Tem 25
1731
4
Nis 25
12108
1
Şub 25
3488
1
Oca 25
1381