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

Hello, I am starting developing openerp modules. What could be wrong with the following code:

school.py

from openerp.osv import osv,fields

class school(osv.osv):
    _name = "school"
    _description = "This will hold the school information"
    _columns = {
        'school_name': fields.char('School Name', size=30,required=True),
        'address': fields.char('Postal Address', size=50 , required=True),
        'city': fields.char('City', size=30, required=True),
                }

school()

school_view.xml

<?xml version="1.0" encoding="utf-8"?>
<openerp>
    <data>
        <record model="ir.ui.view" id="school_base_form">
            <field name="name">school.form</field>
            <field name="model">school.school</field>
            <field name="type">form</field>
            <field name="arch" type="xml">
                <form string="School">
                    <field name="school_name"/>
                    <field namme="address"/>
                    <field name="city"/>
                </form>
            </field>
    </record>

        <record model="ir.actions.act_window" id="action_school_form">
            <field name="name">school</field>
            <field name="res_model">school.school</field>

        </record>
    <menuitem name="School Management" id="school_menu" />
    <menuitem name="Schools" parent="school_menu" id="schools_menu" action="action_school_form" />
    </data>
</openerp>

I am getting the error: ValidateError Error occurred while validating the field(s) arch: Invalid XML for View Architecture!

What could be the problem?

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

Corrected as per this question but still it doesn't work.

Look at my answer, either you did not change the post or you still have the same problem. _name in .py, model in view definition and res_model in action definition should all be te same!

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

Your model is called just school not school.school.

Change:

<field name="res_model">school.school</field>

for:

<field name="res_model">school</field>

and in the view change:

<field name="model">school.school</field>

for:

<field name="model">school</field>

Or you can just change, in the .py

_name = "school"

for:

_name = "school.school"

And it should work!

Hope it fix your problem!

Ảnh đại diện
Huỷ bỏ
Tác giả Câu trả lời hay nhất

The code:

from openerp.osv import osv,fields

class school(osv.osv):
    _name = "school"
    _description = "school information"
    _columns = {
        'school_name': fields.char('School Name', size=30,required=True),
        'address': fields.char('Postal Address', size=50 , required=True),
        'city': fields.char('City', size=30, required=True),
    }

school()

and the view:

<?xml version="1.0" encoding="utf-8"?>
    <openerp>
    <data>
        <record model="ir.ui.view" id="school_base_form">
            <field name="name">school.form</field>
            <field name="model">school</field>
            <field name="arch" type="xml">
                <form string="School" version="7.0">
                    <field name="school_name"/>
                    <field name="address"/>
                    <field name="city"/>
                </form>
            </field>
    </record>

        <record model="ir.actions.act_window" id="action_school_form">
            <field name="name">school</field>
            <field name="res_model">school</field>

        </record>
<menuitem name="School Management" id="school_menu" />
<menuitem name="Schools" parent="school_menu" id="schools_menu" action="action_school_form" />
</data>
</openerp>

The same error... Where is the damn bug?

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

I tried your given code and it's working fine without any error.

Tác giả

It works....after restarting openerp! Thank you all for your assistance.

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

you should remove the line

<field name="type">form</field>

Also line

<field namme="address"/>

should be replaced by

<field name="address"/>

In the log file normally there is a more detailed description of the error.

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

Done that...still the same problem.

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

res_model in action should have the same model name.

<field name="res_model">school</field>
Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

I had the same problem today. I think the xml parser cannot understand lines like:

<field name="adress"/>

You should try:

<field name="address" />

Look at the space before the / ...

I hope that solves your problem :-)

Ảnh đại diện
Huỷ bỏ
Bài viết liên quan Trả lời Lượt xem Hoạt động
1
thg 3 15
2634
1
thg 3 15
7452
1
thg 3 15
2656
4
thg 3 15
5801
1
thg 3 15
4197