我已经成功创建了模块,它工作得非常好。现在从该模块我继承了另一个模块,我需要你支持xml genaration。我给了原始模块.py和xml文件以及新的.py文件。请提供新模块的xml
ORIGINAL模块.py文件
from osv import osv
from osv import fields
class test_base(osv.osv):
_name='test.base'
_columns={
'name':fields.char('Name'),
'email':fields.char('Email'),
'code':fields.integer('Unique ID'),
'sal':fields.float('Salary'),
'rate':fields.selection(((10,'10'), (20,'20'),(30,'30')),
'Percentage of Deduction'),
'ded':fields.float('Deduction'),
'bdisplay':fields.float('Button Display'),
}
def on_change_ded_cal(self, cr, uid, ids,rate,context=None):
x=rate*2
return {'value':{'ded':x }}
test_base()
原始模块xml
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record model="ir.ui.view" id="test_base_form">
<field name="name">test.base.form</field>
<field name="model">test.base</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Test Base">
<field name="name"/>
<field name="email"/>
<field name="code"/>
<field name="sal"/>
<field name="rate" on_change="on_change_ded_cal(rate)"/>
<field name="ded"/>
<field name="bdisplay"/>
</form>
</field>
</record>
<record model="ir.ui.view" id="test_base_tree">
<field name="name">test.base.tree</field>
<field name="model">test.base</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Test Base">
<field name="name"/>
<field name="email"/>
<field name="code"/>
<field name="sal"/>
<field name="ded"/>
</tree>
</field>
</record>
<record model="ir.actions.act_window" id="action_test_seq">
<field name="name">Test Base</field>
<field name="res_model">test.base</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
</record>
<menuitem id="menu_test_base_main" name="Test Base" action="action_test_seq"/>
<menuitem id="menu_test_base" parent="menu_test_base_main"
name="Test Base1" action="action_test_seq"/>
</data>
</openerp>
新模块.py文件
from osv import osv
from osv import fields
class my_base(osv.osv):
_name='my.base'
_inherit='test.base'
_columns={
'dept':fields.char('Department'),
}
my_base()
('ded'字段后可以添加新字段'dept'也请在xml id上解释)
答案 0 :(得分:2)
此处您已将test.base
模型及其功能继承至my.base
。因此,my.base
将被视为新模型,您已为my.base
模型定义了新视图。您无法继承test.base
的视图。如果您尝试向test.base
模型添加新字段,请从my_base() class
删除_name属性或将name属性更改为_name ='test.base'
。然后,您可以继承test.base模型的视图以添加新字段。例如,您想要添加新字段&#39; dept&#39;到test.base的树视图,然后
<record model="ir.ui.view" id="test_base_tree_inheirt">
<field name="name">test.base.tree</field>
<field name="model">test.base</field>
<field name="type">tree</field>
<field name="inherit_id" ref="<base_module_name>.test_base_tree"/>
<field name="arch" type="xml">
<field name="email" position="after">
<field name="dept"/>
</field>
</field>
</record>
这里base_module_name是定义了id为test_base_tree的原始视图的模块的名称。如果它在同一模块中,则无需提供模块名称,只需提供视图ID。通过这种方式,您还可以继承表单视图。