можно ли добавить новые методы к унаследованному модулю в openerp

У меня есть унаследованный модуль для «покупки». Если я добавлю новый метод в Purchase.py, я смогу использовать его в своем представлении (форме). Однако, если я добавлю его в унаследованный модуль. Я не могу использовать его в представлении формы.

Есть ли способ добавить мой новый метод в унаследованный модуль?

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


person Kannan_SJD    schedule 01.08.2014    source источник
comment
Да, возможно, вы можете добавить новые методы в унаследованный модуль, вставьте свой код здесь.   -  person Senthilnathan    schedule 01.08.2014


Ответы (1)


В основном то, что вам нужно сделать, чтобы ваш код работал в унаследованном модуле, это использование:

_inherit = 'purchase.order'

А затем вызовите свою функцию из обновленного представления xml. Например, проверьте такой код:

class account_asset_asset(osv.osv):

    _inherit = 'account.asset.asset'

    def _check_value(self, cr, uid, ids, context=None):
        for asset in self.browse(cr, uid, ids, context=context):
            if asset.purchase_value < 0.0:
                return False
        return True

    _constraints = [
        (_check_value, 'Asset value must be greater than 0!', ['purchase_value']),
    ]

Это проверит, больше ли Purchase_value актива, чем 0, и вернет False, если нет, так что пользователь не сможет сохранить свою запись. Более того, вы можете легко переопределить функцию, используемую в унаследованной модели, чтобы она работала так, как вы хотите.

person Mariusz Mizgier    schedule 01.08.2014