2015-12-07 5 views
0

Я хочу расширить тип данных odoo. Сначала я хотел создать новый тип данных из scretch. Это было непросто, так как odoo/openerp просто не знают, как сохранить этот тип данных. Итак, теперь я хочу расширить его.Extend Odoo/Openerp datatype

from openerp import fields 
class MyDataType(fields.Text): 

    @classmethod 
    def browse_my_data_type(self, value1, value2): 
     result = value1 + value2 
     if len(result) > 0: 
      return result 
     else: 
      return False 

Я попытался использовать его. Это возможно до тех пор, пока я не захочу назвать метод browse_my_data_type.

from openerp import models, fields, api   
import my_new_fields as my_fields  
class my_data_type_test(models.Model): 
    _name = 'my.type.test' 

    name =    fields.Char('Name') 
    my_data_type =  my_fields.MyDataType("My Data Type") 
    result =   fields.Char("Result", compute="_set_result")  

    @api.one 
    def _set_result(self): 
     result = self.my_data_type.browse_my_data_type("valuehere","anotheronehere") 
     if result: 
      self.result = result 
     else: 
      self.result = "" 

Я использовал этот код для проверки метода. К сожалению, это дает мне ошибку AttributeError: 'unicode' object has no attribute 'browse_my_data_type' Как я могу убедиться, что он знает метод, используя его таким образом? (self.my_data_type.browse_my_data_type("valuehere","anotheronehere")

ответ

0

Попробуйте этот код может быть работа:

from openerp import fields 


class MyDataType(fields._String): 
    type = 'text' 

    def browse_my_data_type(self, value1, value2): 
     result = value1 + value2 
     if len(result) > 0: 
      return result 
     else: 
      return False