【问题标题】:Invalid XML view architecture issue - OpenErp无效的 XML 视图架构问题 - OpenErp
【发布时间】:2013-04-10 03:02:54
【问题描述】:

我的 module.py 中有这段代码

class certificados(osv.osv):

_name = 'certificados.certificados'
_description="Certificados de No Produccion"
_inherit = ['mail.thread', 'ir.needaction_mixin']

_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'), 'cert_ids' : fields.one2many('certificados.line','requisicion_id','Items del Certificado',states={'done': [('readonly', True)]}),
        'descripcion' : fields.text('Descripcion'),
        'notas' : fields.text('Notas'),
        }

class certificados_line(osv.osv):

_name = "certificados.line"
_description="Certificados No Produccion"

_columns = {
'Codigo_Arancelario' : fields.integer('Codigo Arancelario'),
'product_id' : fields.many2one('product.product', 'Material'),
'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'),
'requisicion_id' : fields.many2one('certificados.certificados', 'Certificados de No Produccion', ondelete='cascade'),
'Cantidad_Consumida' : fields.float('Cantidad Consumida'), 'Cantidad_Disponible' : fields.float('Cantidad Disponible'),

}
certificados_line()

以及我的 module_view.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="Productos">
                            <field name="cert_ids">
                                <tree string="Productos">
                                    <field name="product_id"/>
                                    <field name="Codigo_Arancelario"/>
                                    <field name="Descripcion_Arancelaria"/>
                                    <field name="Especificaciones_Tecnicas"/>
                                    <field name="Cantidad"/>
                                    <field name="Precio_Unitario_Declarado"/>
                                    <field name="Valor_En_Divisas"/>
                                    <field name="Cantidad_Consumida"/>
                                </tree>
                            </field>
                            <separator string="Observaciones"/>
                            <field name="descripcion"/>
                        </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 中有更多代码,但这是一个有趣的代码,我的意思是,我猜无效架构错误是因为我使用的模型 (certificados.certificados),因为 (cert_ids) 正在调用另一个类称为 (certificados_line),所以,我的问题是,如何在表单视图中嵌入多个模型?

我在另一个名为 purchase_requisition 的模块中看到这是可能的,但由于某种原因我无法用这个模块完成它,有什么想法吗?

【问题讨论】:

  • 你也应该发布你的错误。
  • XML Error 来了

标签: python xml module openerp


【解决方案1】:

第一个问题 最新的第一讨论关于您的证书搜索视图。

在搜索视图中,您添加了对象 certificados.certificados 中不存在的字段 您已添加字段 &lt;field name="Valor_En_Divisas" string="Valor En Divisas" /&gt; 但实际上该字段存在于对象 certificados.line

<record model="ir.ui.view" id="certificados_search">
            <field name="name">certificados.search</field>
            <field name="model">certificados.certificados</field>
            <field name="type">search</field>
            <field name="arch" type="xml">
            <search string="Buscar Certificados" >
                <field name="notas" string="Notas" />

                <field name="Valor_En_Divisas" string="Valor En Divisas" />
            </search>
            </field>
        </record>

现在讨论你的第二个问题

<record id="certificados_certificados_tree" model="ir.ui.view">
                <field name="name">certificados.result.tree.new</field>
                <field name="model">certificados.certificados</field>
                <field name="type">tree</field>
                <field name="arch" type="xml">
                        <tree string="Crear_Certificado" >
                                <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>
                </field>
        </record>

在此树视图中,您为对象 certificados.certificados 定义了一个与此对象相关的字段 &lt;field name="Item" /&gt; 所有其他字段都与 certificados.line 对象相关。

当您从搜索和表单视图中删除属于 certificados.line 的字段时,它会完美运行。

正如我所说,我刚刚解决了上一个问题中的一个问题,这两个问题也在您的视图中,当定义您的树视图或搜索视图时,请考虑放置该对象拥有的字段。

【讨论】:

  • 天哪,我不敢相信我没有注意到,非常感谢你,我明天试试(现在是凌晨 1 点),但谢谢你,你救了我的命!
  • 完美运行,非常感谢!像往常一样棒!它只是给了我另一个棘手的问题,但我在另一个问题中问了这个问题。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多