我只想知道如何通過使用計算字段計算來設置one2many中的值。在這裏我的代碼是如何設置計算one2many字段計算odoo
Python文件
from openerp import models ,fields,api
from openerp import SUPERUSER_ID
from dateutil.relativedelta import relativedelta
import openerp.addons.decimal_precision as dp
import math
import logging
import datetime
class extend_product_product(models.Model):
_inherit = 'product.product'
monthly_lines = fields.One2many('minmax.monthly.data','month_id', 'Monthy Sales',compute="_get_monthly_sales")
@api.one
def _get_monthly_sales(self):
vals = {}
vals.update({'monthly_lines':[(0,0,{'month_name_id':1,'so_qty':35})]})
self.write(vals) # Also I have tried self.monthly_lines = [(0,0,{'month_name_id':1,'so_qty':35})]
class minmax_monthly_data(models.Model):
_name = 'minmax.monthly.data'
month_id = fields.Many2one('product.product', 'Product Reference', select=True, required=True)
month_name_id = fields.Many2one('minmax.months','Minmax Month',required=True)
so_qty = fields.Float('Sales Qty', digits_compute=dp.get_precision('Product Unit of Measure'), required=True)
XML文件
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record model="ir.ui.view" id="product_monthly_minmax_tree">
<field name="name">product.product.tree</field>
<field name="model">product.product</field>
<field name="inherit_id" ref="product.product_product_tree_view"/>
<field name="type">form</field>
<field name="arch" type="xml">
<field name="ean13" position="after">
<field name="monthly_lines" widget="one2many_tags" />
</field>
</field>
</record>
</data>
</openerp>
在這裏,我試圖手動插入數據。無論何時加載product.product樹視圖,該函數都會正確調用。但沒有結果。提前致謝。
結果相同。沒有數據存儲在minmax_monthly_data表中。感謝您的回覆。任何其他方式? – balaraman
您錯過了設置many2one參考,請參閱我已更新的功能。直到您在'minmax.monthly.data'模型中設置many2one引用,它纔會在One2many模型中顯示。 –
物理記錄是否存在,您可以檢查數據庫。有一條記錄,但與任何產品無關。 –