0

我的模块 certificados.py 有一个 xml,.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'),
            'cert_ids' : fields.one2many('purchase.requisition.line','requisition_id','Products to Purchase',states={'done': [('readonly', True)]}),
            '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()

我正在尝试对该模块进行一些设计,使其显示为采购申请,我的意思不仅仅是记录,还有一些“工作表”和“h1”以及类似的“笔记本”之类的东西,我的模块的代码在它的“形式”部分是形式:

    <record id="student_certificados_form" model="ir.ui.view">
    <field name="name">certificados.result.form</field>
    <field name="model">certificados.certificados</field>
    <field name="type">form</field>
    <field name="arch" type="xml">
        <form string="Introducir los datos" >
            <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" />
            </form>
    </field>
</record>

我做了一些修改,但我不知道错误在哪里,修改后的版本是这样的:

<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="
                        <tree string="certificados_certificados_tree" editable="bottom">
                            <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="Certificados" version="7.0">
                            <group>
                                <field name="Codigo Arancelario" />
                                <field name="Especificaciones Tecnicas"/>
                                <field name="Valor En Divisas" />
                            </group>
                        </form>

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

我知道这里有一些错字,但找不到,它给了我无效的 XML 架构,这通常被称为 xml 字段中的不匹配。

有人可以告诉我错误在哪里吗?

提前致谢

4

2 回答 2

1

即使将您的字段名称从“Codigo Arancelario”改进为“Codigo_Arancelario”,您仍然会收到来自上述代码的错误。我可以分析,可能是您忘记了,或者您不知道对于“one2many”字段类型,必须有many2one 字段将该对象引用到另一个对象。

Here in your module's scenario, You have to define many2one field in purchase.requisition.line for 'cert_ids'. 

Try This :

instead of 'cert_ids' , use this one over there

'cert_ids' : fields.one2many('purchase.requisition.line','cert_requisition_id','Products to Purchase',states={'done': [('readonly', True)]}),



And after that add an object, in your .py file i.e

class purchase_requisition_line(osv.Model):
    _inherit = 'purchase.requisition.line'
    _columns = {
        'cert_requisition_id': fields.many2one('certificados.certificados', 'Products to Purchase')
    }
purchase_requisition_line()

Hope this will Solve your Error.
于 2014-01-06T10:21:57.603 回答
1

py 文件中的字段定义可能存在问题。

您正在定义这样的字段:'Codigo Arancelario' : fields.integer('Codigo Arancelario'),但它必须是这样'Codigo_Arancelario' : fields.integer('Codigo Arancelario')的。这就是您面临错误的原因。

所以改变你在 py 和 xml 中的字段定义,然后尝试一下。

我希望它会工作。

于 2013-04-07T05:45:34.550 回答