2015-07-22 1 views
0

Как я могу расширить функцию python из другого py с параметрами в той же папке в среде odoo ?. например:расширить функцию python в odoo из другого пользовательского python?

main.py

class account_invoice(osv.osv): 
    _inherit = 'account.invoice' 

    def create(self, cr, uid, ids, vals, context=None): 
     get_xml = self._generate_xml(ids.xml) 

library.py

class library_invoice(osv.osv): 

    def _generate_xml(self,xml): 
     build xml...... 
     return xml 

спасибо заранее.

+0

Вы имеете в виду monkeypatching? – user3557327

+0

Не обязательно пытаться взять собственные объекты наследует от Odoo для обработки переменных в другом .py и возвращает его в модель приоритета. thnks in davance – chaco

ответ

1

Если вы хотите расширить функции питона в Odoo, вы можете сделать это, написав:

def _generate_xml(self,xml): 
    get_xml = super(account_invoice, self)._generate_xml(xml) 
    # And from now on you can add whatever you want... 

ПРИМЕЧАНИЕ

Я просто понял, что вы пытаетесь распространить метод в класс, который не наследуется от account.invoice. Честно говоря, я никогда не пытался расширить функцию из класса, который не наследуется от класса, где был объявлен оригинальный метод. Я не уверен, что это возможно.

+0

Да, очень похоже на метод, по которому классы расширяются между CSS и HTML, я пытаюсь наследовать собственные значения из account.py для отправки objs в другой library.py, чтобы обрабатывать и возвращать значения в account.py продолжить нормальный поток во взглядах, приветствия – chaco

0

Финли сделали

первым, мне нужно, чтобы загрузить файл в инициализации .py

импорта основного

библиотеки импорта exmaple

# для

после, его возможности вызывают funcion где угодно main.py by self.pool.get like this

из библиотеки import library_inv oice var = self.pool.get ('library.invoice') ._ generate_xml (param)

Смежные вопросы