2
在Odoo中,每次打開產品表單時都會計算產品的數量。這發生在model product.product ==> function _product_available。Odoo:如何覆蓋原始功能
該函數返回一個名爲res的字典。
例子:
res = {8: {'qty_available': 5000.0, 'outgoing_qty': 1778.5, 'virtual_available': 3221.5, 'incoming_qty': 0.0}}
現在我要修改這些值。我設法通過在原始函數_product_available中直接編碼來做到這一點。
由於這不是正確的方法,所以我想在繼承模型中這樣做。我想我需要重寫該功能?或覆蓋?不知道它叫什麼。
我讀到的關於做這件事的一切都很模糊。我找不到很多好的信息或例子。當我使用新風格(模型)時,我也在努力處理原始函數是用舊風格(osv)編寫的事實。
從互聯網上收集的信息我寫了類似的東西(這是行不通的)。
class product_product_inherit(models.Model):
_inherit = 'product.product'
#api.v7 because of old style? Also tried .multi and .model...
@api.v7
def _product_available(self, cr, uid, ids, field_names=None, arg=False, context=None):
#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(C, self)._product_available(res)
return result
有誰知道修改原始函數_product_available的返回字典的正確方法嗎?
我如何得到它的工作:
class product_product_inherit(models.Model):
_inherit = 'product.product'
def _product_available(self, cr, uid, ids, field_names=None, arg=False, context=None):
for product in self.browse(cr, uid, ids, context=context):
id = product.id
res = {id: {'qty_available': 200.222, 'outgoing_qty': 1778.5, 'virtual_available': 30205.263671875, 'incoming_qty': 0.0}}
return res
剛纔定義完全相同的一種方法,在原始模型。
知道它現在工作已經。不管怎麼說,還是要謝謝你!我會發布我在OP中是如何做到的。 – RobbeM