2014-02-06 20 views
1

我正在嘗試在OpenERP 7中創建產品規範模塊。已完成一些工作。但與Master-detail關係混淆,變量& XML。OpenERP 7中的主詳細關係,變量和XML

這張照片

enter image description here

需要創建這個下部構成本的.py & .xml文件看看。

product_pspec.py

from openerp.osv import osv, fields 

class product_pspec(osv.osv): 

    _name = "product.pspec" 

    _columns = { 
    'prototype': fields.char('Prototype#', size=20), 
    'style': fields.char('Style#', size=20), 
    'customer': fields.char('Customer', size=20), 
    'body_type': fields.char('Body Type', size=20), 
    'program_brand': fields.char('Program/Brand', size=20), 
    'color_asstmnt': fields.char('Color Asstmnt', size=200), 
    'size_info': fields.integer('Size Info', size=20), 
    'description': fields.char('Description', size=500), 
    'designer': fields.char('Designer', size=20), 
    'factory': fields.char('factory', size=20), 
    'pcs_hanger': fields.integer('Pcs/Hanger', size=20), 
    'developed_sold': fields.char('Developed/Sold', size=20), 

    } 


class product_pspec_details(osv.osv): 

    _name = "product.pspec.details" 

    _columns = { 
     'product_pspec_id' : fields.many2one('product.pspec', 'Product Pspec', required=True), 
     'product_product_id' : fields.many2one('product.product', 'Product Product', required=True), 
     'supplier_name': fields.char('Supplier Name', size=20), 
     'style_number': fields.char('Style Number', size=20), 
     'where_used': fields.char('Where Used', size=20), 
     'est_yield': fields.char('Est. Yield', size=20), 
     'price': fields.char('Price', size=20), 
     'cost_dz': fields.char('Cost Dz', size=20), 
    } 
    _sql_constraints = [ 
     ('uniq_name', 'unique(product_product_id, supplier_name, where_used)', "Already Added"), 
    ] 

product_pspec() 
product_pspec_details() 

product_pspec.py.xml

<?xml version="1.0" encoding="utf-8"?> 
<openerp> 
<data> 
<record model="ir.ui.view" id="product_pspec_product"> 
<field name="name">product.pspec</field> 
<field name="model">product.pspec</field> 
<field name="arch" type="xml"> 
    <form string="Create product Specification" version="7.0"> 
    <group> 
    <field name="prototype"/> 
    <field name="style"/> 
    <field name="customer"/> 
    <field name="body_type"/> 
    <field name="program_brand"/> 
    <field name="color_asstmnt"/> 
    <field name="size_info"/> 
    <field name="description"/> 
    <field name="designer"/> 
    <field name="factory"/> 
    <field name="pcs_hanger"/> 
    <field name="developed_sold"/> 
    <field colspan="4" name="product_pspec_id" widget="many2one_list"> 
     <tree string="Materials" editable="bottom"> 
    <field name="product_product_id"/> 
    <field name="Supplier Name"/> 
    <field name="Style number"/> 
    <field name="Where Used"/> 
     </tree> 
    </field> 
    </group> 
    </form> 
</field> 
</record> 
<record id="product_specification_product_act_window" model="ir.actions.act_window"> 
     <field name="name">Product Specification</field> 
     <field name="type">ir.actions.act_window</field> 
     <field name="res_model">product.pspec</field> 
     <field name="view_type">form</field> 
     <field name="view_id" ref="product_pspec_product"/> 
</record> 
<menuitem 
     name="Product Specification" 
     id="menu_product_specification" 
     parent="base.menu_mrp_root" 
     sequence="16" 
     /> 


<menuitem 
     name="Product Pspec" 
     id="menu_product_pspec" 
     parent="menu_product_specification" 
    action="product_specification_product_act_window" 
     /> 


</data> 
</openerp> 

如何創建下部/標記部分。

**組件部分是我需要創建的一個示例。上部&菜單部分已經完成。

回答

1

編輯:

據我所看到的,你要創建PSPEC和pspec.details之間的關係one2many。在您的詳細信息側一切似乎不錯,但在你的PSPEC方面,你需要一個額外的one2many字段作爲關係到你的細節,如:

from openerp.osv import orm, fields 

class product_pspec(orm.Model): 

    _name = "product.pspec" 

    _columns = { 
    'prototype': fields.char('Prototype#', size=20), 
    'style': fields.char('Style#', size=20), 
    'customer': fields.char('Customer', size=20), 
    'body_type': fields.char('Body Type', size=20), 
    'program_brand': fields.char('Program/Brand', size=20), 
    'color_asstmnt': fields.char('Color Asstmnt', size=200), 
    'size_info': fields.integer('Size Info', size=20), 
    'description': fields.char('Description', size=500), 
    'designer': fields.char('Designer', size=20), 
    'factory': fields.char('factory', size=20), 
    'pcs_hanger': fields.integer('Pcs/Hanger', size=20), 
    'developed_sold': fields.char('Developed/Sold', size=20), 
    'details_ids':fields.one2many("product.pspec.details","product_pspec_id", string="Details") #new field 

    } 


class product_pspec_details(osv.osv): 

    _name = "product.pspec.details" 

    _columns = { 
     'product_pspec_id' : fields.many2one('product.pspec', 'Product Pspec', required=True), 
     'product_product_id' : fields.many2one('product.product', 'Product Product', required=True), 
     'supplier_name': fields.char('Supplier Name', size=20), 
     'style_number': fields.char('Style Number', size=20), 
     'where_used': fields.char('Where Used', size=20), 
     'est_yield': fields.char('Est. Yield', size=20), 
     'price': fields.char('Price', size=20), 
     'cost_dz': fields.char('Cost Dz', size=20), 
    } 
    _sql_constraints = [ 
     ('uniq_name', 'unique(product_product_id, supplier_name, where_used)', "Already Added"), 
    ] 

然後,你必須在你的視圖(XML)來使用這個新的領域:

<?xml version="1.0" encoding="utf-8"?> 
<openerp> 
<data> 
<record model="ir.ui.view" id="product_pspec_product"> 
<field name="name">product.pspec</field> 
<field name="model">product.pspec</field> 
<field name="arch" type="xml"> 
    <form string="Create product Specification" version="7.0"> 
    <group> 
    <field name="prototype"/> 
    <field name="style"/> 
    <field name="customer"/> 
    <field name="body_type"/> 
    <field name="program_brand"/> 
    <field name="color_asstmnt"/> 
    <field name="size_info"/> 
    <field name="description"/> 
    <field name="designer"/> 
    <field name="factory"/> 
    <field name="pcs_hanger"/> 
    <field name="developed_sold"/> 
    <field colspan="4" name="details_ids"> 
     <tree string="Materials" editable="bottom"> 
      <field name="product_product_id"/> 
      <field name="supplier_name"/> 
      <field name="style_number"/> 
      <field name="where_used"/> 
     </tree> 
    </field> 
    </group> 
    </form> 
</field> 
</record> 
+0

嘗試做到這一點,錯誤顯示... except_orm:(「ValidateError」,u'Error在驗證字段(S)拱發生:無效的XML的視圖結構') –

+0

可我看到您的實際代碼,請嗎? – CZoellner

+0