2016-10-18 6 views
1

Мне удалось найти способ получить цену продукта на stock.picking, но теперь у меня есть ошибка просмотра.Неверное определение определения - Сообщество Odoo v9

Это моя модель:

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") 

Теперь код обижая на мой взгляд:

<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> 

Это говорит Error details: Field price_unity does not exist, как это возможно?

На дереве просмотра не выдает эту ошибку:

<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> 

Так, как получается, что с точки зрения формы я не могу объявить его»

ли я что-то отсутствует?

Заранее благодарен!

+0

Я знаю, что вы упомянули, что не видите ошибки в своем списке. Знают ли значения в представлении списка? –

+0

Позвольте мне прокомментировать форму и обновить, я напишу – NeoVe

+0

Да, это показывает ожидаемые значения, но только древовидное представление, на форме оно выдает ошибку и не может установить ее – NeoVe

ответ

2

Вы добавляете price_unity поля в представлении внутри pack_operation_product_ids поля.

pack_operation_product_ids является One2many тип отношения с stock_pack_operation объекта.

Таким образом, нам нужно добавить/зарегистрировать price_unity поле в stock_pack_operation объекта.

Try с помощью следующего кода:

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 

После перезагрузки сервера Odoo и обновить пользовательский модуль.

Примечание:

Вы не получаете сообщение об ошибке в дереве выбора акций, потому что вы добавили/зарегистрированный price_unity.

Ваш код обзора хорош.

+0

Удивительный! Lol, Большое спасибо! – NeoVe