計算フィールド計算を使用して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
多くのリファレンスを設定していませんでした。機能が更新されましたを参照してください。 'minmax.monthly.data'モデルでmany2one参照を設定するまでは、One2manyモデルでは表示されません。 –
物理的なレコードがあるので、データベースにチェックインすることができます。 1つのレコードがありますが、どの製品にも関連していません。 –