2016-10-18 5 views
1

Ich schaffe es, einen Weg zu finden, den Produktpreis auf stock.picking zu haben, aber jetzt habe ich einen Ansichtsfehler.Ungültige Ansichtsdefinition - Odoo v9 community

Das ist mein Modell:

from openerp import models, fields, api 
import openerp.addons.decimal_precision as dp 

class StockPicking(models.Model): 
    _inherit = 'stock.picking' 

    product_id = fields.Many2one("product.product", "Product") 
    price_unity = fields.Float(string="Precio", store=True, readonly=True, related="product_id.lst_price") 

Nun wird der säumige Code aus meiner Sicht:

<record id="view_stock_picking_form" model="ir.ui.view"> 
    <field name="name">Stock Picking Price Form</field> 
    <field name="model">stock.picking</field> 
    <field name="inherit_id" ref="stock.view_picking_form"/> 
    <field name="arch" type="xml"> 
      <xpath expr="//page/field[@name='pack_operation_product_ids']/tree/field[@name='qty_done']" position="after"> 
       <field name="price_unity"/> 
      </xpath> 
    </field> 
</record> 

Es sagt Error details: Field price_unity does not exist wie ist das überhaupt möglich?

Auf Baum sehen sie diesen Fehler nicht wirft:

<record id="view_stock_picking_tree" model="ir.ui.view"> 
    <field name="name">Stock Picking Price Tree</field> 
    <field name="model">stock.picking</field> 
    <field name="inherit_id" ref="stock.vpicktree"/> 
    <field name="arch" type="xml"> 
     <field name="state" position="before"> 
      <field name="price_unity"/> 
     </field> 
    </field> 
</record> 

Also, wie kommt es, dass ich in der Formularansicht kann es nicht erklären‘

bin ich etwas fehlt?

Vielen Dank im Voraus!

+0

Ich weiß, dass Sie erwähnt haben, dass Sie in Ihrer Listenansicht keinen Fehler erhalten. Erscheinen die Werte in der Listenansicht wie erwartet? –

+0

Lassen Sie mich das Formular kommentieren und aktualisieren, ich werde zurück schreiben – NeoVe

+0

Ja, es zeigt die erwarteten Werte, aber nur Baumansicht, auf Formular wirft es den Fehler und kann es nicht installieren – NeoVe

Antwort

2

Sie fügen price_unity Feld im Blick ins Innere pack_operation_product_ids Feld.

pack_operation_product_ids ist ein One2Many Beziehungstyp mit stock_pack_operation Objekt.

So müssen wir price_unity Feld in stock_pack_operation Objekt hinzufügen/registrieren.

Versuchen mit folgendem Code:

class StockPackOperation(models.Model): 
    _inherit = 'stock.pack.operation' 

    price_unity = fields.Float(string="Precio", store=True, readonly=True, related="product_id.lst_price") 

    #product_id is already in table so no need to add/register 

Danach Odoo Server neu starten und Ihre benutzerdefinierten Modul aktualisieren.

HINWEIS:

Sie sind nicht Fehler in Baum auf Lager immer Kommissionierung, weil Sie hinzugefügt haben/registriert price_unity.

Ihr Ansichtscode ist gut.

+0

Super! Lol, vielen Dank! – NeoVe

Verwandte Themen