0

在我的自定义模块中,我尝试在它的 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设计有一些东西,但不知道在哪里。

如果有人可以提供帮助,那就太好了。

提前致谢!

4

3 回答 3

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/的 openerp 开发者书籍

于 2013-04-08T08:11:01.870 回答
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'对象。

谢谢,普里耶什索兰基

于 2013-04-08T08:47:03.227 回答
0

我认为你需要学习规则来编写xml

1) 所有 XML 元素必须有一个结束标记 2) XML 标记区分大小写 3) XML 元素必须正确嵌套 4) XML 文档必须有一个根元素 5) XML 属性值必须被引用

http://www.w3schools.com/xml/xml_syntax.asp

于 2013-04-08T08:14:21.700 回答