2017-06-14 1 views
0

besoin d'hériter classe BaseModel et ajouter un nouvel attribut commeComment nous pouvons hériter la classe BaseModel dans Odoo

_auto = True 
_register = False 
_name = None 
_columns = {} 
_constraints = [] 
_custom = False 
_defaults = {} 
_rec_name = None 
_parent_name = 'parent_id' 
_parent_store = False 
_parent_order = False 
_date_name = 'date' 
_order = 'id' 
_sequence = None 
_description = None 
_needaction = False 
_translate = True 

Utilisez cet attribut dans tous les modèles doivent donc être déclarer comme

exemple global:

from openerp import api, fields, models, _ 

class NewClass(models.Model): 

    _name = 'object name' 
    _new_attribute = 'vaule' 

Répondre

0
from openerp import api, fields, models, _ 

class BaseModelExtend(models.AbstractModel): 
    _name = 'basemodel.extend' 
    models.BaseModel._navigation = 'id' 

    def _register_hook(self, cr): 
     ''' 
     Register method in BaseModel 
     ''' 
     @api.multi 
     def navigate_field(self): 
      #CODE 
      return True 
     models.BaseModel.navigate_field = navigate_field 
     return super(BaseModelExtend, self)._register_hook(cr) 
0

1- créer un nouveau fichier python my_basemodel.py

2- ajoutez votre commande méthodes comme celui-ci

from openerp.osv.orm import BaseModel 
# built your attribute. you can refer inbuilt code to create attribute. 
+0

veulent pas utiliser les attributs déjà déclarer dans une nouvelle classe. Tout d'abord besoin d'être ajouter un nouvel attribut dans la classe BaseModel _navigation = False Classe SaleOrder (models.Model): \t _name = 'sale.order' \t _navigation = 'partner_id' –

+0

essayer ce code! mais vous devez construire votre attribut. –