Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
2 Trả lời
6713 Lượt xem

Under OpenERP V7, I am creating a custom module to be able to handle color and size of product.

I created a new object :

from osv import fields, osv
class product_apparel(osv.osv):
        _name = "product.apparel"
        _description = "Object to add colors and size property to a product"
        _columns = {
                'product_id' : fields.many2one('product.product', 'Product', required=True),
                'product_apparel_color' : fields.integer('Color', help='Color'),
                'product_apparel_size' : fields.char('Size',size=3, help='Size')
        }

product_apparel()

class product_product(osv.osv):
        _name = 'product.product'
        _inherit = 'product.product'
        _columns = {
                'product_apparel_id' : fields.one2many('product.apparel', 'product_id', 'Apparel Schema')
        }

and a view to display the 2 new properties :

<?xml version="1.0" encoding="utf-8"?>
<openerp>
        <data>
                <record id="view_product_apparel_form" model="ir.ui.view">
                        <field name="name">product.apparel</field>
                        <field name="model">product.product</field>
                        <field name="inherit_id" ref="product.product_normal_form_view"/>
                        <field name="arch" type="xml">
                                <field name="product_apparel_color"/>
                        </field>
                </record>
        </data>
</openerp>

But when installing I am facing the following error :

except_orm: ('ValidateError', u'Error occurred while validating the field(s) arch: Invalid XML for View Architecture!')

Is-it because of my : <field name="name">product.apparel</field> <field name="model">product.product</field> ?

Ảnh đại diện
Huỷ bỏ
Tác giả

For test, I comment all the block <field name="arch" type="xml"> It erased the message. Then I modify again the xml BUT it seems that even if I restart OpenERP, it doesn't load the xml file: the xml structure is invalid and yet no error message. I also change browser (in case of cache pb) no effect

Câu trả lời hay nhất

You need to add the fields to the product.product model and not product.apparel.

When you inherit a view, you have to define where you want to display your field relatively to the other ones.

For instance:

<field name="arch" type="xml">
    <field name="name" position="after">
        <field name="product_apparel_color"/>
    </field>
</field>

For more information, see the documentation

Or if you need many product.apparel for a product.product, you need to create the complete tree and form views and display them in the product's inherited view:

<field name="arch" type="xml">
    <field name="name" position="after"> <!-- change according to where you want to place it -->
        <field name="product_apparel_id"/>
    </field>
</field>
Ảnh đại diện
Huỷ bỏ
Tác giả

I specified the position : <field name="name" position="after"> , but error still the same. I was thinking that it's maybe because I have to define the class where to find the property product_apparel on the <field name="model">, that is to say: product_apparel and not product.product, but seems not

Câu trả lời hay nhất

Sorry I don't have time to copy your code and give it a complete work out, but; a thought occurred to me. Perhaps you should refer to the product link product.product_apparel_id (which I would have named product_apparel_ids.)

<field name="arch" type="xml">
    <field name="product_apparel_id"/>
</field>

I hope you find this helpful!

Ảnh đại diện
Huỷ bỏ

Hi, the name of the class has no effect. Only the _name or _inherit attribute is used for the models.

Bài viết liên quan Trả lời Lượt xem Hoạt động
1
thg 1 24
3263
6
thg 12 16
9667
1
thg 3 15
5469
4
thg 6 24
7627
1
thg 12 22
5953