Se rendre au contenu
Menu
Cette question a été signalée
5 Réponses
15943 Vues

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?

Avatar
Ignorer
Auteur

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!

Meilleure réponse

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!

Avatar
Ignorer
Auteur Meilleure réponse

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?

Avatar
Ignorer

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

Auteur

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

Meilleure réponse

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.

Avatar
Ignorer
Auteur

Done that...still the same problem.

Meilleure réponse

res_model in action should have the same model name.

<field name="res_model">school</field>
Avatar
Ignorer
Meilleure réponse

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

Avatar
Ignorer
Publications associées Réponses Vues Activité
1
mars 15
2634
1
mars 15
7429
1
mars 15
2656
4
mars 15
5766
1
mars 15
4149