Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Odoo:如何覆盖原始功能_Python_Overriding_Odoo_Overwrite - Fatal编程技术网

Python Odoo:如何覆盖原始功能

Python Odoo:如何覆盖原始功能,python,overriding,odoo,overwrite,Python,Overriding,Odoo,Overwrite,在Odoo中,每次打开产品窗体时都会计算产品的数量。这发生在型号product.product=>function\u-product\u-available中 此函数返回一个名为res的字典 例如: res = {8: {'qty_available': 5000.0, 'outgoing_qty': 1778.5, 'virtual_available': 3221.5, 'incoming_qty': 0.0}} 现在我想修改这些值。我通过直接在原始的函数中对其进行编码来实现这一点 因为

在Odoo中,每次打开产品窗体时都会计算产品的数量。这发生在型号
product.product=>function\u-product\u-available

此函数返回一个名为res的字典

例如:

res = {8: {'qty_available': 5000.0, 'outgoing_qty': 1778.5, 'virtual_available': 3221.5, 'incoming_qty': 0.0}}
现在我想修改这些值。我通过直接在原始的
函数中对其进行编码来实现这一点

因为这不是正确的方法,所以我想在继承的模型中这样做。我想我需要重写
函数
?还是覆盖?不知道它叫什么

我读到的关于做这件事的一切对我来说都很模糊。我找不到太多好的信息或例子。当我使用新的样式(
模型
)时,我也在努力解决原始函数是用旧样式(
osv
)编写的这一问题

从我在互联网上收集的信息中,我写了这样的东西(这是行不通的)


是否有人知道修改原始
函数\u产品\u可用的
返回词典的正确方法?

我想您可以试试这个

class ProductProductInherit(models.Model): 
    _inherit = 'product.product'

    @api.multi
    def _product_available(self, field_names=None, arg=False):
        #example of modified values. To be made variable after this is working.
        res = {8: {'qty_available': 200.222, 'outgoing_qty': 1778.5, 'virtual_available': 30205.263671875, 'incoming_qty': 0.0}}
        result = super(ProductProductInherit, self)._product_available(res)    
        return result
提问者的解决方案(从问题中删除答案数据):

我是如何让它工作的:

类产品\u产品\u继承(models.Model):
_继承='product.product'
def_product_可用(self、cr、uid、ids、字段名称=None、arg=False、context=None):
对于self.browse中的产品(cr、uid、ID、context=context):
id=product.id
res={id:{qty\u available':200.222,“outing\u数量”:1778.5,“virtual\u available':30205.263671875,“incoming\u数量”:0.0}
返回res

刚刚定义了与原始模型完全相同的方法。

现在已经可以使用了。无论如何谢谢你!我将在我的专栏文章中发表我是如何做到这一点的。
class ProductProductInherit(models.Model): 
    _inherit = 'product.product'

    @api.multi
    def _product_available(self, field_names=None, arg=False):
        #example of modified values. To be made variable after this is working.
        res = {8: {'qty_available': 200.222, 'outgoing_qty': 1778.5, 'virtual_available': 30205.263671875, 'incoming_qty': 0.0}}
        result = super(ProductProductInherit, self)._product_available(res)    
        return result