Skip to Content
Menu
This question has been flagged

Hello,


I have a class in Python where I wish to inherit from a model and a custom python class which I made. 


I have done this before in Version 13 which works like this:


* base class *

class APIBase ():

    # coded ...


* model class *

from odoo import models, fields, api

from .api_base import APIBase

    

class cpq_quotes (models.Model, APIBase):

    _inherit = "crm.lead"

    # coded ... 


However, I now receive the error:

Traceback (most recent call last):

  File "/usr/local/lib/python3.8/dist-packages/werkzeug/serving.py", line 270, in run_wsgi

    execute (self.server.app)

  File "/usr/local/lib/python3.8/dist-packages/werkzeug/serving.py", line 258, in execute

    application_iter = app (approximately, start_response)

  File "/home/odoo/src/odoo/odoo/service/server.py", line 440, in app

    return self.app (e, s)

  File "/home/odoo/src/odoo/odoo/service/wsgi_server.py", line 122, in application

    return ProxyFix (application_unproxied) (environ, start_response)

  File "/usr/local/lib/python3.8/dist-packages/werkzeug/contrib/fixers.py", line 152, in __call__

    return self.app (environ, start_response)

  File "/home/odoo/src/odoo/odoo/service/wsgi_server.py", line 99, in application_unproxied

    result = odoo.http.root (approximately, start_response)

  File "/home/odoo/src/odoo/odoo/http.py", line 1294, in __call__

    return self.dispatch (approximately, start_response)

  File "/home/odoo/src/odoo/odoo/http.py", line 1262, in __call__

    return self.app (approximately, start_wrapped)

  File "/usr/local/lib/python3.8/dist-packages/werkzeug/wsgi.py", line 766, in __call__

    return self.app (environ, start_response)

  File "/home/odoo/src/odoo/odoo/http.py", line 1446, in dispatch

    odoo.registry (db) .check_signaling ()

  File "/home/odoo/src/odoo/odoo/__init__.py", line 104, in registry

    return modules.registry.Registry (database_name)

  File "/home/odoo/src/odoo/odoo/modules/registry.py", line 65, in __new__

    return cls.new (db_name)

  File "/home/odoo/src/odoo/odoo/modules/registry.py", line 89, in new

    odoo.modules.load_modules (registry._db, force_demo, status, update_module)

  File "/home/odoo/src/odoo/odoo/modules/loading.py", line 449, in load_modules

    processed_modules + = load_marked_modules (cr, graph,

  File "/home/odoo/src/odoo/odoo/modules/loading.py", line 346, in load_marked_modules

    loaded, processed = load_module_graph (

  File "/home/odoo/src/odoo/odoo/modules/loading.py", line 187, in load_module_graph

    model_names = registry.load (cr, package)

  File "/home/odoo/src/odoo/odoo/modules/registry.py", line 230, in load

    model = cls._build_model (self, cr)

  File "/home/odoo/src/odoo/odoo/models.py", line 579, in _build_model

    ModelClass .__ bases__ = tuple (bases)

TypeError: __bases__ assignment: 'cpq_quotes' object layout differs from 'Lead' - - -


There is no reference to change like this in the Version 14 documentation that I can see.


Any help would be greatly appreciated.


Thanks, 


Edit: I guess a way to get around this would be for both classes to inherit crm.lead, I think it would be better OOP for the base class to inherit both. So if anyone has a solution it would still be appreciated. 

Avatar
Discard
Related Posts Replies Views Activity
3
Jan 22
52522
5
Oct 20
7136
12
Dec 16
8435
0
Nov 24
5109
1
Aug 15
9859