创建从自定义模块继承的新模块

时间:2016-01-20 09:45:19

标签: python odoo-9

我试图在我的新模块中添加一些字段,其中包含5个类,其中2个继承自自定义模块(product.template / res.partner)这些类与关系字段相关,我尝试了很多方法来制作它工作并纠正许多错误,但现在坚持这个

ParseError: "Invalid view definition

details of error :
the field `date_intv` doesn't existe 
Contexte de l'erreur :
Vue `intervention.form`
[view_id: 2592, xml_id: n/a, model: c.intervention, parent_id: n/a]
None" while parsing file:///C:/Program Files (x86)/Odoo 9.0-20151125/server/openerp/addons/Gestion_CVT/fileds_intervention.xml:5, near
<record model="ir.ui.view" id="intervention_form">
            <field name="name">intervention.form</field>
            <field name="model">c.intervention</field>
            <field name="type">form</field>
            <field name="arch" type="xml">
                <form string="formulaire">
                    <field name="type_int"/>
                    <field name="properties4"/>
                    <field name="date_intv"/>
                </form>
            </field>
        </record>
另外,我已经使用了osv.osv,但是没有使用equipement类,因为我是按类添加类,所以现在我将它们全部更改为models.Model所以这里是我的.py文件

# -*- coding: utf-8 -*-
from openerp import models, fields, api
class centre(models.Model):
   _name = 'res.partner'
   _inherit = ['res.partner']
   rs_ctr = fields.Char(string='Réseau')
   nb_ligne = fields.Integer(string='Lignes')
   n_agr = fields.Integer(string='N° d\'agrèment')
   chef = fields.Char(string='Chef centre')
   prp = fields.Char(string='Propriétaire')
   equipement_id = fields.Many2one('product.template','Equipements',select=True)
   properties1 = fields.One2many('product.template','centre_id','Centres')
centre() 
class equipement(models.Model):
   _name = 'product.template'
   _inherit = ['product.template']
   num_ligne = fields.Integer(string='N° ligne')
   model_mat = fields.Char(string='Model de materiel')
   centre_id = fields.Many2one('res.partner','Centres',select=True) 
   marque_id = fields.Many2one('c.marque','Marques',select=True)
   properties2 = fields.One2many('c.eptinv','equipement_id','Equipements')
equipement()    
class marque(models.Model):
   _name = 'c.marque'
   _description = 'Marques' 
   name = fields.Char(string='Nom')
   nom_four = fields.Char(string='Fournisseur')  
   properties3 = fields.One2many('product.template','marque_id','Marques')
marque()
class intervention(models.Model):
   _name = 'c.intervention'
   _inherits = {'c.eptinv': 'date_intv'}
   STATE_SELECTION =  [('c','Corrective'),('p','Préventive')]
   _description = 'Interventions'
   name = fields.Char(string='Nom')
   type_int = fields.Selection(STATE_SELECTION,'Type d\'intervention')
   properties4 = fields.One2many('c.eptinv','intervention_id','Interventions')
intervention()      
class eptinv(models.Model):
   _name = 'c.eptinv'
   _description = 'EptInv' 
   date_intv = fields.Date(string='Date d\'intervention')
   equipement_id = fields.Many2one('product.template','Equipements')  
   intervention_id = fields.Many2one('c.intervention','Interventions')
eptinv()

1 个答案:

答案 0 :(得分:2)

字段{{yourArrayValue | formatArray}}不存在这个错误发生的原因是,你将类eptinv继承到类干预中......这不是正确的方法......拿一个例子..

假设如果要将A类继承到B类,那么A类必须在B类之前定义,然后您可以将A类机制用于B类。 现在您必须更改类定义的顺序,如下图所示。

enter image description here

代码 ---&gt;

date_intv

我希望这个答案对你有帮助。