2016-10-18 8 views
1

テーブルからフィールドを、別のテーブルに、モジュールを介して追加しようとしています。あるモデルから別のモデルへフィールドを継承する - Odoo v9 Community

具体的には、フィールドをproduct.productpriceフィールドから継承して、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> 

私は本当にわからないんだけど、それは私からそれを呼び出すネバーエンディングループに入るように思えますフォームビュー。

私は実際に何が間違っているのか分かりません。

これを達成するためのアイデアはありますか?

ありがとうございます!

答えて

1

あなたが持っている問題は、あなたがstock.moveに製品価格を追加したい場合は、単にproduct.productを拡張する追加のモデルを削除して作るあなたがproduct.productを継承し、One2manyフィールドで再びそれに

をリンクしているということですあなたのようなMany2oneリンクは除いて、あなたのstock.moveモデルでやったモデル名は、これは全体としてオブジェクトをピックアップしていますが、価格だけをしたい場合は、その後、あなたは関連を使用する必要があります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。商品へのリンクを持っている)、私はちょうど関連分野がどのように動作するかをお見せするためにそこにそれを置く

+0

ありがとう – NeoVe

1

stock.moveの関連フィールドはどうですか?

class StockMove(models.Model): 
    _inherit = "stock.move" 

    price_unity = fields.Float(
     string="Precio", related="product_id.price", readonly=True) 
関連する問題