Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
3 Trả lời
19776 Lượt xem

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

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhấ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)

Ảnh đại diện
Huỷ bỏ

This solved the problem. Thanks

Câu trả lời hay nhấ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

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhấ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
Ảnh đại diện
Huỷ 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

Bài viết liên quan Trả lời Lượt xem Hoạt động
5
thg 6 20
9302
1
thg 7 25
1731
4
thg 4 25
12108
1
thg 2 25
3488
1
thg 1 25
1381