Слишком длинное имя таблицы odoo 13

Я получаю эту ошибку после добавления двоичного файла. Я удаляю поле, но получаю ту же ошибку.

Имя таблицы n_hesaby_subscription_manager_subscription_manager_res_users_rel слишком длинное

odoo.exceptions.ValidationError: ("Table name 'n_hesaby_subscription_manager_subscription_manager_res_users_rel' is too long", None) - - -

кто-нибудь знает, что это значит, я не могу найти


person Moaz Mabrok    schedule 30.06.2020    source источник
comment
Соответствующий stackoverflow.com/a/26101401/5320906   -  person snakecharmerb    schedule 30.06.2020
comment
@sn спасибо за ответ, значит ли это, что мне нужно сократить _name   -  person Moaz Mabrok    schedule 30.06.2020


Ответы (1)


Судя по названию таблицы, она создается из поля many2many между n_hesaby_subscription_manager_subscription_manager и res.users, когда вы не указываете имя для таблицы отношений, Odoo сгенерирует его для вас model_1_name_model_2_name_rel.

Итак, в вашем определении many2many укажите более короткое имя

    m2m_field_name = fields.Many2many(comodel_name='res.users', 
           relation='put_nice_table_name_here',  
           column1='put_nice_and_short_field_name_here_to', 
           column2='user_id', 
           string='You field label')

Я использую свой телефон, извините за мой короткий ответ. Надеюсь, вы уловили идею, вы можете проверить стандартные модули Odoo, вы найдете множество примеров. Всегда указывайте имя отношения в вашем поле many2many - это хороший способ предотвратить непредвиденное поведение.

person Charif DZ    schedule 30.06.2020
comment
зачем нам столбец1 и столбец2? - person Moaz Mabrok; 01.07.2020
comment
Нет, вам не нужно их указывать, odoo выберет там имена, если вы их не укажете. Единственный обязательный аргумент - comodel_name - person Charif DZ; 02.07.2020