2014-04-17 1 views
-3

quand je veux exécuter mon dopy_data, pour obtenir la valeur de l'objet et l'incrémenter, et dupliquer l'objet j'ai cette erreur: TypeError: l'argument de type 'int' n'est pas itérablesTypeError: l'argument de type 'int' n'est pas itérable openerp

class immo_assurance(osv.osv): 
    _name = "immo.assurance" 
    _description = "Assurance" 

    def copy_data(self, cr, uid, id, default=None, context=None): 
     if default is None: 
     default = {} 

     res = 1 

     idea = self.browse(cr, uid, id) 

     res += int(idea.nContrat) 

     #res = default.get('nContrat') 

     default['nContrat'] = res 

     return super(immo_assurance, self).copy_data(
      cr, uid, id, default=res, context=context) 

    _columns = { 
       'name':fields.char('Code',size=10,required=True), 
       'nContrat':fields.integer('Ndu contrat',size=60,required=True), 
       'dDebut':fields.date('Début'), 
       'dFin':fields.date('Fin'), 
       'id_societe' : fields.many2one('immo.societe'  ,'Société',required=True), 
       'cAnnuel':fields.float('Cout annuel',size=60),    
       'commentaire':fields.char('Commentaires',size=10), 
       'articles':fields.one2many('immo.article','assurance','Liste Articles',    readonly=True), 
       }   

immo_assurance() 

`

+3

Pourriez-vous s'il vous plaît examiner le code que vous avez posté, en vous assurant qu'il correspond à l'empreinte, etc. dans le code que vous utilisez, et fournir le retraçage d'erreur complète. – jonrsharpe

+0

En outre, cette question semble être une version moins informative de [celui-ci] (http://stackoverflow.com/questions/23118239/how-to-get-value-from-object-with-copy-data-function -and-incriment-it-and-dupli) que vous avez créé plus tôt. Vous devriez éditer et améliorer vos questions plutôt que d'en ouvrir de nouvelles. – jonrsharpe

+0

je édite la question, ceci mon code de classe – user3542605

Répondre

0

par défaut est un dictionnaire que vous ne pouvez pas retourner ceci:

super(immo_assurance, self).copy_data(cr, uid, id, **default=res**, context=context)` 

par défaut = res * ceci est incorrect

mais

def copy_data(self, cr, uid, id, default=None, context=None): 
    if default is None: 
     default = {} 
    res = 1 
    idea = self.browse(cr, uid, id) 
    res += int(idea.nContrat) 
    default['nContrat'] = res 
    return super(immo_assurance, self).copy_data(
     cr, uid, id, default, context) 
+0

grâce à son travaillé – user3542605

Questions connexes