Как сделать наследование на объекте Odoo - PullRequest
1 голос
/ 12 апреля 2019

Я пытаюсь добавить наследование для существующего объекта в Odoo, который является "mail.alias.mixin", в объект "utm.campaign".

Я пытался сделать _inherit = ["mail.alias.mixin "," utm.campaign "], но когда я устанавливал свой модуль, он всегда говорил

File "/home/randy/Odoo/odoo_12/odoo/modules/registry.py", line 180, in __getitem__
    return self.models[model_name]
KeyError: None

Вот мой код полностью:

manifest .py


{
    "name": "CRM ext",
    "version": "12.4.0.0.0",
    'author': 'me',
    "description": """
    extend CRM.
    """,
    "depends": [
        'crm',
        'calendar',
        'fetchmail',
        'utm',
        'web_tour',
        'digest',
        'mail',
    ],
    'init_xml': [],
    'data': [
        "security/ir.model.access.csv",
        'data/crm_question.xml',
        'wizard/lost_and_link_partner_crm_wizard_views.xml',
        'views/crm_lead_view.xml',
    ],
    'installable': True,
    'active': False,
    'application': False,
}

И мой utm.py


from odoo import api, fields, models, SUPERUSER_ID
from odoo.http import request
from odoo.tools import pycompat
from odoo.tools.safe_eval import safe_eval


class Campaign(models.Model):
    _name = "utm.campaign"
    _inherit = ["mail.alias.mixin", "utm.campaign"]

    alias_id = fields.Many2one('mail.alias', string='Alias', ondelete="restrict", required=True, help="The email address associated with this campaign. New emails received will automatically create new leads assigned to the campaign.")
    crm_team_id = fields.Many2one('crm.team', string="CRM Team")

Я за исключением того, что мое наследование правильное, но Кажется, что я что-то упустил.

Ответы [ 2 ]

1 голос
/ 12 апреля 2019

Согласно документации Odoo 12 вы можете наследовать от нескольких моделей, только если задано _name. В вашем коде _name совпадает с родительской моделью, и это то же самое, что не имя настройки. Вы не определяете новую модель, поэтому не можете наследовать от нескольких родителей.

https://www.odoo.com/documentation/12.0/reference/orm.html#reference-orm-inheritance

_inherit Если задано _name, имена родительских моделей для наследования. Может быть str при наследовании от одного родителя Если _name не задано, имя отдельной модели для расширения на месте

0 голосов
/ 16 апреля 2019

Я нашел это,

Так что "mail.alias.mixin" - абстрактный объект, я скучаю по этому.Итак, мне нужно реализовать все абстрактные методы тоже.

Надеюсь, что это может спасти чей-то день!

...