在我的自定义模块中,我尝试在其xml视图中进行一些设计(工作表,组,笔记本......)
我正面临这个问题“无效的XML架构 - OpenErp XML视图”我不知道这里是否有错误的标签,我是基于现有模块进行设计的。
<record id="student_certificados_form" model="ir.ui.view">
<field name="name">certificados.result.form</field>
<field name="model">certificados.certificados</field>
<field name="arch" type="xml">
<form string="Introducir los datos" version="7.0">
<sheet>
<div class="oe_edit_only">
<label for="Registro_Numero" class="oe_inline"/>
</div>
<h1>
<field name="Registro_Numero" class="oe_inline"/>
</h1>
<group>
<group>
<field name="Fecha_de_Emision"/>
<field name="Fecha_de_Solicitud"/>
</group>
<group>
<field name="Fecha_del_Documento"/>
<field name="Vigencia"/>
</group>
</group>
<notebook>
<page string="Certificados">
<field name="Crear Certificado" >
<tree string="Certificadu" >
<field name="Item" />
<field name="Codigo_Arancelario" />
<field name="Descripcion_Arancelaria" />
<field name="Especificaciones_Tecnicas" />
<field name="Precio_Unitario_Declarado" />
<field name="Valor_En_Divisas" />
<field name="Cantidad_Consumida" />
<field name="Cantidad_Disponible" />
</tree>
<form string="Certificado" version="7.0">
<group>
<field name="Codigo_Arancelario" />
<field name="Especificaciones_Tecnicas"/>
<field name="Valor_En_Divisas" />
</group>
</form>
</field>
<separator string="Certificados"/>
<field name="Item" readonly="1">
<tree string="Certificados" >
<field name="Codigo_Arancelario" />
<field name="Descripcion_Arancelaria" />
<field name="Especificaciones_Tecnicas" />
<field name="Cantidad" /><field name="Unidad_de_Medida" />
<field name="Precio_Unitario_Declarado" /><field name="Moneda" />
<field name="Valor_En_Divisas" /><field name="Moneda" />
<field name="Cantidad_Consumida" />
<field name="Cantidad_Disponible" />
</tree>
</field>
</page>
</notebook>
</sheet>
<div class="oe_chatter">
<field name="message_follower_ids" widget="mail_followers"/>
<field name="message_ids" widget="mail_thread"/>
</div>
</form>
</field>
</record>
这是我从其他模块中获取的设计。
module.py就像:
class certificados(osv.osv):
_name = 'certificados.certificados'
_columns = {
'Item' : fields.integer('Item'), 'Registro_Numero' : fields.integer('Registro Numero'),
'Fecha_de_Emision': fields.date('Fecha de Emision', required=True, select=True),
'Fecha_de_Solicitud': fields.date('Fecha de Solicitud', required=True, select=True),
'Fecha_del_Documento': fields.date('Fecha del Documento', required=True, select=True),
'Vigencia' : fields.integer('Vigencia'),
'Codigo_Arancelario' : fields.integer('Codigo Arancelario'),
'Descripcion_Arancelaria' : fields.char('Descripcion Arancelaria', size=42, required = True, translate = True),
'Especificaciones_Tecnicas' : fields.char('Especificaciones Tecnicas', size=60, required = True, translate = True),
'Cantidad' : fields.float('Cantidad'), 'Unidad_de_Medida': fields.many2one('product.uom', 'Unidad de Medida'),
'Precio_Unitario_Declarado' : fields.float('Precio Unitario Declarado'), 'Moneda' : fields.many2one('res.currency', 'Moneda'),
'Valor_En_Divisas' : fields.float('Valor En Divisas'),
'Cantidad_Consumida' : fields.float('Cantidad Consumida'), 'Cantidad_Disponible' : fields.float('Cantidad Disponible'),
'notas' : fields.text('Notas'),
}
certificados()
我认为这不是module.py代码中不匹配或未声明字段的问题。
我确信xml设计有一些东西,但不知道在哪里。
如果有人能提供帮助会非常好。
提前致谢!
答案 0 :(得分:2)
在你的代码中出现了许多错误。
1.`<field name="Crear Certificado" >`
该字段不会在您的py代码列中退出。并且您的字段名称不是PEP 8规则
2. `<field name="Item" readonly="1">`
项是整数字段,我不明白你为什么像one2many那样对待这个字段并定义树。
3.<div class="oe_chatter">
<field name="message_follower_ids" widget="mail_followers"/>
<field name="message_ids" widget="mail_thread"/>
</div>
如果你想使用这个字段,你必须在你的对象中继承_inherit = ['mail.thread','ir.needaction_mixin']
你的xml文件结构非常糟糕,请更改它。使用四个空格标签。
希望这对您有所帮助,如果您想在openerp中开发模块,那么首先阅读来自http://doc.openerp.com和7 http://doc.openerp.com/trunk/developers/server/的开发者的开发者书
答案 1 :(得分:2)
您确实在该表单视图中使用了不必要的xml标记。试试这个:
<record id="student_certificados_form" model="ir.ui.view">
<field name="name">certificados.result.form</field>
<field name="model">certificados.certificados</field>
<field name="arch" type="xml">
<form string="Introducir los datos" version="7.0">
<sheet>
<div class="oe_edit_only">
<label for="Registro_Numero" class="oe_inline"/>
</div>
<h1>
<field name="Registro_Numero" class="oe_inline"/>
</h1>
<group>
<group>
<field name="Fecha_de_Emision"/>
<field name="Fecha_de_Solicitud"/>
</group>
<group>
<field name="Fecha_del_Documento"/>
<field name="Vigencia"/>
</group>
<group>
<field name="Codigo_Arancelario"/>
<field name="Descripcion_Arancelaria"/>
</group>
<group>
<field name="Especificaciones_Tecnicas"/>
<field name="Cantidad"/>
</group>
<group>
<field name="Precio_Unitario_Declarado"/>
<field name="Valor_En_Divisas"/>
</group>
<group>
<field name="Cantidad_Consumida"/>
<field name="notas"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
如果你想最后使用'message_follower_ids'和'message_ids',在表单视图中显示,你需要继承'mail.thread'对象。
谢谢, Priyesh Solanki
答案 2 :(得分:0)
我认为你需要学习写xml的规则
1)所有XML元素必须具有结束标记 2)XML标签区分大小写 3)XML元素必须正确嵌套 4)XML文档必须具有根元素 5)必须引用XML属性值