#python #odoo-13
Вопрос:
Я совершенно новичок в odoo, и я столкнулся с этой проблемой: у меня есть модуль под названием «comite technique», в котором есть поле one2many с моделью «промоутеры» в другом модуле, поэтому мне пришлось добавить поле many2one в модель «промоутеры», чтобы заставить ее работать, когда я добавил поле many2one, промоутеры работают довольно хорошо, вот код моделей.py в модуле промоутеры:
class promoteurinitiative(models.Model): _name = 'initiative.promoteur' _rec_name = 'prenom' civilite = fields.Many2one('res.partner.title') nom = fields.Char(string="Nom", required=True) prenom = fields.Char(string="Prénom", required=True) date = fields.Date(string="Date de naissance", required=True) email = fields.Char() country_id = fields.Many2one('res.country', string='Country', ondelete='restrict') tel = fields.Char(string="Tél", required=True) contract_count = fields.Integer() comite_id = fields.Many2one('initiative.comitetechnique', string="Comité technique")
Но всякий раз ,когда я добавляю поле one2many в «технику comite», изменяю его вид, перезапускаю сервер odoo и пытаюсь обновить модуль, я получаю эту ошибку: Вот код в models.py модуля «Техника комитета» :
import calendar class comitetechniqueinitiative(models.Model): _name = 'initiative.comitetechnique' _rec_name = 'date' _description = 'comitetechniqueinitiative' date = fields.Date(default=fields.Date.today, string="Date de la comité technique", required=True) jour = fields.Char( string='Jour') pro = fields.One2many('initiative.promoteur','comite_id') @api.onchange('date') def _get_day_of_date(self): for r in self: if r.date : selected = fields.Datetime.from_string(r.date) r.jour = calendar.day_name[selected.weekday()]
Я буду признателен, если вы поможете найти решение этой проблемы
Комментарии:
1. Определены ли обе модели в одном и том же модуле? Если да, то загружаются ли их файлы Python их папками
__init__.py
, а их папки загружаются корнем__init__.py
?
Ответ №1:
Проблема решена с помощью наследования и добавления зависимостей в файл manfiest. В models.py модуля «Техника комитета» :
class comitetechniqueinitiative(models.Model): _name = 'initiative.comitetechnique' _rec_name = 'date' _description = 'comitetechniqueinitiative anwar' date = fields.Date(default=fields.Date.today, string="Date du comité technique", required=True) jour = fields.Selection([('lundi', 'Lundi'), ('mardi', 'Mardi'), ('mercredi', 'Mercredi'), ('jeudi', 'Jeudi'),('vendredi','Vendredi'),('samedi','Samedi'),('dimanche','Dimanche') ], string='Jour') promoteur = fields.One2many('initiative.promoteur','comite_id') class promoteur(models.Model): _inherit = "initiative.promoteur" comite_id = fields.Many2one('initiative.comitetechnique', string="Comité technique")
И добавление в файл манифеста того же модуля зависимости от модуля промоутера:
'depends': ['base','promoteurinitiative']