在openerp中验证arch字段时XML无效

1 投票
1 回答
2597 浏览
提问于 2025-04-17 20:21

我创建了一个示例模块,里面有四个文件。这个模块已经安装在我的Ubuntu系统中的addons文件夹里,路径是opt/openerp/server/openerp/addons。这个文件夹在addons文件夹列表和已安装模块列表中都能看到。当我尝试安装这个模块时,出现了“无效架构”的错误,具体错误信息如下:

                                 ValidateError

在验证字段时发生错误:视图架构的XML无效!我的代码如下:

init.py

 import student_info

openerp.py

{
'name':'Student Information',
'version':'7.0',
'author':'Sneha Elizabeth Antony',
'depends':['base'],
'Category':'General',
'description':'This module contains the information about the students ie         name,age,gender etc',
'init_xml':[],
'update_xml':['student_info_view.xml'],
'demo_xml':[],
'active':'False',
'installable':'True',
'Certificate':''
}

student_info.py

from osv import osv,fields

class student_student(osv.osv):

_name = 'student.student'

_columns = {
'name':fields.char('Student Name',size=16,required = True,translate = True),
'age':fields.integer('Age',readonly = True),
'percent':fields.float('Percentage',help = 'This field will add average marks of students out of 100'),
'gender':fields.selection([('male','Male'),('female','Female')],'Gender'),
'active':fields.boolean('Active'),
'notes':fields.text('Details'),
}

_defaults = { 'name':'Atul',
      'active':True,
}
student_student()

student_info_view.xml

<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>


<!--Student search view-->
<record model="ir.ui.view" id="student_search" >
    <field name="name">student.search</field>
    <field name="model">student.student</field>
    <field name="type">search</field>
    <field name="arch" type="xml">
      <search string = "student information search">
        <field name="name" string = "Student Name" />
        <field name="gender" string = "Gender" />  
        <field name="age" string = "Age" />
       </search>
    </field>
</record>



 <!--Student tree View-->
  <record id="student_student_tree" model="ir.ui.view">
    <field name="name">student.result.tree</field>
    <field name="model">student.student</field>
    <field name="type">tree</field>
    <field name="arch" type="xml">
      <tree string="Student_result">  
        <field name="name" />  
        <field name="age" />
    <field name="percentage"/> 
        <field name="gender"/>  
        <field name="active"/>
        </tree>
    </field>
</record>


<!--Student Form View-->
<record id="student_student_form" model="ir.ui.view">
    <field name="name">student.result.form</field>
    <field name="model">student.student</field>
    <field name="type">form</field>
    <field name="arch" type="xml">
      <form string="Student_result">  
        <field name="name" />  
        <field name="age" />
    <field name="percentage"/> 
        <field name="gender"/>  
        <field name="active"/>
    <field name="notes"/>
        </form>
    </field>
</record>

<!--Student Action-->
<record id="action_student_student" model="ir.actions.act_window">
    <field name='name'>Student Information</field>
    <field name='res_model'>student.student</field>
    <field name='view_type'>form</field>
    <field name='view_mode'>tree,form</field>
</record>


<!--Student Menu-->
 <menuitem id="student_parent" name="student"/>
 <menuitem id="menu_student_parent" name="Student Management"     parent="student_parent"></menuitem>
 <menuitem action="action_student_student" id="menu_student_student" parent="menu_student_parent" string="Result"/>
     </data>
 </openerp>

我的代码有什么问题呢?有没有人能给我正确的代码呢?

1 个回答

3

看看这个,id是一样的。在OpenERP中,id必须是唯一的。所以只需要把其中一个id改一下,让它变得唯一。

<menuitem id="menu_student_parent" name="Student Management"     parent="student_parent"></menuitem>

<menuitem action="action_student_student" id="menu_student_student" parent="menu_student_parent" string="Result"/>

希望这能帮到你。如果还有其他问题,随时告诉我。

撰写回答