تخطي للذهاب إلى المحتوى
القائمة
لقد تم الإبلاغ عن هذا السؤال
3 الردود
19771 أدوات العرض

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

الصورة الرمزية
إهمال
أفضل إجابة

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)

الصورة الرمزية
إهمال

This solved the problem. Thanks

أفضل إجابة

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

الصورة الرمزية
إهمال
أفضل إجابة
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
الصورة الرمزية
إهمال

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

المنشورات ذات الصلة الردود أدوات العرض النشاط
5
يونيو 20
9300
1
يوليو 25
1731
4
أبريل 25
12106
1
فبراير 25
3487
1
يناير 25
1381