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

Hello, I am trying to override a create method for the crm.leads model, but cant seem to get the overridden method to be called instead of the original.

Can someone tell me how to override another method from an inherited module?

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất
  1. Have you imported your python module on __init__,py where your custom class are declared?
  2. Have you called your class after the class declaration?
  3. Have you imported the crm module on __openerp__.py file?

Example:

my_module.py file:

 class my_crm_lead(base_stage, format_address, osv.osv):
    _inherit='crm.lead'
    def create(self, cr, uid, vals, context=None):
         if context is None:
            context = {}
         create_context = dict(context)
         return super(crm_lead, self).create(cr, uid, vals, context=create_context)

my_crm_lead() #call the class it's required

__init__.py file:

import my_module

__openerp__.py file:

{
   'name': 'My CRM',
   'version': '1.0',
   'category': '...',
   'description':"...",
   'depends': ['crm'],
   'installable': True,
}
Ảnh đại diện
Huỷ bỏ
Tác giả

Hello, and thanks for your help. I forgot to import the class file in the __init__.py file. Once I did that then it worked

Hello Eric. Please, could you mark my answer as the correct?

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

You need to add the original module on openerp "Depends" List file. In that case i think is the crm.

Hope it helps.

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

What Rafael Reuber says it's true, but call the function (point number 2) it's not necessary.

Andrea

Ảnh đại diện
Huỷ bỏ
Bài viết liên quan Trả lời Lượt xem Hoạt động
2
thg 2 18
33184
0
thg 4 15
3490
0
thg 10 24
1036
3
thg 7 18
3888
0
thg 2 17
5