我正在尝试通过模块将表中的字段添加到另一个表中。
具体而言,尝试从product.product
price
字段继承字段,将其添加到stock.move
模型中。
所以,我已经在我正在制作的这个新模块中创建了一个模型。
像这样:
# -*- coding: utf-8 -*-
from openerp import models, fields, api
import openerp.addons.decimal_precision as dp
class product(models.Model):
_inherit = 'product.product'
_rec_name = 'price_unidad'
price_unidad = fields.One2many('product.product','price', string="Precio", readonly=True)
class StockMove(models.Model):
_inherit = 'stock.move'
price_unity = fields.Many2one("product", string="Precio", readonly=True)
然后,就我的观点而言:
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="view_stock_move_tree" model="ir.ui.view">
<field name="name">Stock Move Price Tree</field>
<field name="model">stock.move</field>
<field name="inherit_id" ref="stock.view_move_picking_tree"/>
<field name="arch" type="xml">
<field name="state" position="before">
<field name="price_unity"/>
</field>
</field>
</record>
<record id="view_stock_move_form" model="ir.ui.view">
<field name="name">Stock Move Price Form</field>
<field name="model">stock.move</field>
<field name="inherit_id" ref="stock.view_move_picking_form"/>
<field name="arch" type="xml">
<field name="state" position="before">
<field name="price_unity"/>
</field>
</field>
</record>
</data>
</openerp>
我不太确定,但是当我从表单视图中调用它时,它似乎进入了一个无休止的循环。
所以,我真的不知道它有什么问题。
关于如何实现这一目标的任何想法?
提前致谢!
答案 0 :(得分:1)
您遇到的问题是,您继承product.product
并使用One2many
字段再次链接回来
如果您要将产品价格添加到stock.move
,只需删除扩展product.product
的额外模型,并在您的stock.move
模型中创建像您一样的Many2one链接,模型名称为product.product
class StockMove(models.Model):
_inherit = 'stock.move'
price_unity = fields.Many2one("product.product", string="Precio", readonly=True)
这会选择整个对象,但如果您只想要价格,那么您必须使用相关字段
class StockMove(models.Model):
_inherit = 'stock.move'
product_id = fields.Many2one("product.product", "Product")
price_unity = fields.Float(string="Precio", store=True, readonly=True, related="product_id.price")
注意:您不需要product_id(stock.move
模型已经有一个带有相同名称的product.product的链接),我只是把它放在那里向您展示相关字段工作强>
答案 1 :(得分:1)
stock.move
上的相关字段呢?
class StockMove(models.Model):
_inherit = "stock.move"
price_unity = fields.Float(
string="Precio", related="product_id.price", readonly=True)