2016-01-20 57 views
0

我试图添加一些字段到我的新模块,其中包含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> 

manchening还我已经使用了osv.osv但与设备公司类,因为我没有工作现在我将它们全部更改为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

date_intv不存在,因为发生这个错误,你继承类eptinv到类干预..这是不正确的做法......以1例..

假设如果你想继承A级进入B级,那么A级必须在B级之前定义,然后你可以使用A级机制进入B级。 现在你必须改变你的类定义的序列,它显示在下面图片。

enter image description here

代码 --->

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

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

+0

谢谢你的回复真正有用的笔记 –