在哪里编写python的新方法。在现有的.py文件中还是我需要创建一个新文件?

时间:2015-03-31 05:18:29

标签: openerp openerp-7 odoo openerp-8 odoo-8

我打算在包含现有.py文件的销售点编写一个方法。我应该创建新的python文件吗?或在现有的.py文件中编写新方法??

2 个答案:

答案 0 :(得分:0)

如果您需要向特定模型添加新方法(例如sale.order),则继承该特定模型并将您的方法添加到单独的模块中,即自定义模块。

class SaleOrder(models.Model):
    _inherit='sale.order'
    @api.multi
    def custom_test_method(self...)

注意: 这是为了迁移到新版本或从github更新您的代码。大多数情况下,对模型的任何修改都只需在自定义模块中完成。

答案 1 :(得分:0)

切勿更改基本模块中的代码或您未编写的模块。因为当转换到更新最新代码以获得新功能或迁移到另一个版本时,代码丢失的可能性很大,并导致奇怪的行为。

将自定义模块用于新方法或覆盖现有方法 例如:在pos模块中添加新方法,模型" pos.order":

class pos_order(orm.Model):
    _inherit = "pos.order"

    def your_new_method(self, cr, uid, ids, args, context=None):
        ## your code
        return

对于现有方法:

class pos_order(orm.Model):
    _inherit = "pos.order"

    def your_existing_method(self, cr, uid, ids, args, context=None):
        res = super(pos_order, self).your_existing_method(cr, uid, ids, args, context=context)
        ## your code to change the existing method result
        return res