나는 다음과 같은 상태에서 좌초 https://www.odoo.com/apps/modules/7.0/mrp_bom_product_details/는에서 BOM 라인에 열을 추가 OpenERP V8
내 시도에 근거하여 BOM 라인에서 사용자 지정 열로 BOM 폼보기를 사용자 정의하기 위해 노력하고있어 :
custom_bom_form.py :
from openerp.osv import fields, osv
from openerp.tools.translate import _
class mrp_bom(osv.osv):
_inherit = 'mrp.bom'
_columns ={
'product_qty_available': fields.related('product_id', 'qty_available', type='float', string='Quantity On Hand', readonly=True),
}
_defaults = {
}
mrp_bom()
custom_bom_form.xml :
<?xml version="1.0"?>
<openerp>
<data>
<record id="mrp_bom_form_view_product_details" model="ir.ui.view">
<field name="name">mrp.bom.form.product_details</field>
<field name="model">mrp.bom</field>
<field name="inherit_id" ref="mrp.mrp_bom_form_view"/>
<field name="arch" type="xml">
<xpath expr="//notebook/page[@string='Components']/field/tree[@string='Components']/field[@name='product_qty']" position="after" >
<field name="product_qty_available" />
</xpath>
</field>
</record>
</data>
</openerp>
모듈을 설치하는 동안이 Odoo에서 오류가 발생합니다 : 내가 거기 product_qty_available
를 참조 할 수없는 이유
ParseError: "ValidateError
Field(s) `arch` failed against a constraint: Invalid view definition
Error details:
Field `product_qty_available` does not exist
Error context:
View `mrp.bom.form.product_details`
[view_id: 1094, xml_id: n/a, model: mrp.bom, parent_id: 675]" while parsing /usr/lib/python2.7/dist-packages/openerp/addons/mrp_bom_product_details/mrp_bom_product_details.xml:5, near
<record id="mrp_bom_form_view_product_details" model="ir.ui.view">
<field name="name">mrp.bom.form.product_details</field>
<field name="model">mrp.bom</field>
<field name="inherit_id" ref="mrp.mrp_bom_form_view"/>
<field name="arch" type="xml">
<xpath expr="//notebook/page[@string='Components']/field/tree[@string='Components']/field[@name='product_qty']" position="after">
<field name="product_qty_available"/>
</xpath>
</field>
</record>
나는 그것은 BOM 형태로 다른 장소에서 작동 알아낼 수 없습니다. 예 :
<field name="arch" type="xml">
<field name="product_id" position="after">
<field name="product_qty_available" />
</field>
</field>
작동.
대신 참조 된 필드를 시스템이 알고있는 것으로 변경합니다. 다른 product_qty
열을 추가 :
<field name="arch" type="xml">
<xpath expr="//notebook/page[@string='Components']/field/tree[@string='Components']/field[@name='product_qty']" position="after" >
<field name="product_qty" />
</xpath>
</field>
누군가가 내가 잘못 뭐하는 거지 저를 표시 할 수 있습니다. 어떻게 product_qty_available
을 참조 할 수 있습니까? 노트북 페이지에 특별한 것이 있습니까?
업데이트
근무 평 파일 :
from openerp.osv import fields, osv
from openerp.tools.translate import _
class mrp_bom_line(osv.osv):
_inherit = 'mrp.bom.line'
_columns ={
'product_qty_available': fields.related('product_id', 'qty_available', type='float', string='Quantity On Hand', readonly=True),
}
_defaults = {
}
mrp_bom_line()
및 XML 파일 : 당신은 모델의 필드 product_qty_available
을 추가 한
<?xml version="1.0"?>
<openerp>
<data>
<record id="mrp_bom_form_view_product_details" model="ir.ui.view">
<field name="name">mrp.bom.form.product_details</field>
<field name="model">mrp.bom</field>
<field name="inherit_id" ref="mrp.mrp_bom_form_view"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='bom_line_ids']/tree/field[@name='product_qty']" position="after">
<field name="product_qty_available" />
</xpath>
</field>
</record>
</data>
</openerp>
두 번째 제안은 내가 달성하기 위해 노력하고 있지만, 운이 아직있어 것입니다. .py 파일을 변경하여 mrp.bom.line에서 상속 된 mrp_bom_line 클래스를 정의하고 xml 파일을 두 번째 제안으로 변경했습니다.Odoo는 여전히'product_qty_available'이 존재하지 않는다고보고합니다. –
".py"파일에 대한 코드를 여기에 게시 할 수 있습니까? 서버를 다시 시작하고 모듈을 업데이트 했습니까? –
또한 모델을 xml 파일의 mrp.bom.line으로 변경하면 Odoo는 'Field' message_follower_ids'가 존재하지 않는다는 오류를 제공합니다. 가능한 경우 –