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

Hi guys,

I would like to inherit the model 'account.analytic.account' but when I do so I get the following error:

TypeError: The model "account.analytic.account" specifies an unexisting parent class "fleet.vehicle"
You may need to add a dependency on the parent class' module. 
I've created a custom module named 'aa_auto_maatwerk' with the following code.
__init__.py:
 # -*- coding: utf-8 -*-
import controllers
import models

__openerp__.py

 # -*- coding: utf-8 -*-
{
    'name': "aa_auto_maatwerk",

    'summary': """Extending fleet""",

    'description': """
        Extending some features """,

    'author': "Your Company",
    'website': "http://www.yourcompany.com",
    'category': 'Uncategorized',
    'version': '0.1',

    # any module necessary for this one to work correctly
    'depends': ['base', 'fleet', 'analytic'],

    # always loaded
    'data': [
        # 'security/ir.model.access.csv',
        'templates.xml',
    ],
    # only loaded in demonstration mode
    'demo': [
        'demo.xml',
    ],
}

models.py:

 # -*- coding: utf-8 -*-

from openerp.osv import osv, fields, orm

class aa_auto_maatwerk(orm.Model):
    _name = 'account.analytic.account'
    _inherit = ['account.analytic.account']
    _columns = {
        'car_ids': fields.many2many('fleet.vehicle', 'fleet_to_contract', 'car_id1', 'car_id2', 'Cars'),
    }

Why am I getting this and what is wrong with this? The model exists in the database. I want this to lay a link to car.vehicle with a one2many.

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

Hi ,,

First of all:-

Please check that you included  the inherited object Module name in your module __openerp__.py -> "depends"

Normally if you don't it will give this kind of error.

If that doesn’t solves the problem,  Please try:-

_name = 'your_object_name'
_inherit = ['account.analytic.account']

or if you want to Inherit the same object and add additional field you can use like:-

_inherit = 'account.analytic.account' 

Hope this solves the problem...

Ảnh đại diện
Huỷ bỏ
Tác giả

Thanks for the quick reply Baiju! This keeps throwing me the KeyError though.. :s

Hi Yenthe , i updated the answer, please that about this....

Tác giả

Hi Baiju, turns out the .pyc file was still having the old version and ment that the other module wasn't loaded in the __openerp__.py. However I now have a dependency error. Any clue on this? I've updated my whole question with all the new code, error etc. I'll upvote your answer for now, thanks :)

Tác giả

Fixed this. In the __openerp__.py of the analytic module I also had to add a dependency for fleet, since I also use this in my custom module.

Hi Yenthe,did this solved the problem??

Tác giả

Yes it did! I just needed to add depends on the other module that I inherited from too.

Câu trả lời hay nhất

you do not need to have 'base' in dependency list... when you add new module in dependency list and that module has some dependency already listed in your list, then you should remove from dependency list such entries. module 'fleet' depends on 'base', so 'base' should be removed after adding the 'fleet'

Ảnh đại diện
Huỷ bỏ
Tác giả

Good catch Temur! I've removed it from my module, thanks. Upvoted ;)

Bài viết liên quan Trả lời Lượt xem Hoạt động
2
thg 11 19
10424
Cleaning up Models Đã xử lý
3
thg 5 15
4448
3
thg 11 23
35353
3
thg 12 22
4494
4
thg 10 20
4188