2015-06-25 41 views
-1

我的OpenERP 6.0创建的模块功能,即OpenERP的6.0不支持相同的代码的OpenERP 7的问题,这是函数创建:如果有一个人能帮助我解决这个问题:创建的OpenERP 6.0

def create(self, cr, uid, vals, context=None): 
    if context is None: 
     context = {} 
    if vals['teacher_id']: 
     teacher=self.pool.get("res.partner").browse(cr,uid,vals['teacher_id'],context) 
     teacher.attendee=True 
    if vals['etudiant_ids'][0][2]: 
     for etudiant in self.pool.get("res.partner").browse(cr,uid,vals['etudiant_ids'][0][2],context): 
      etudiant.attendee=True 
    return super(attendee, self).create(cr, uid, vals, context=context) 

问题是在 “如果瓦尔斯[ 'etudiant_ids'] [0] [2]:”

if vals['etudiant_ids'][0][2]: 
TypeError: 'bool' object has no attribute '__getitem__' 
+0

请使用代码块和正确的缩进,特别是因为缩进在语法上与python相关。我试图修复它,请检查它是否正确。 – Dakkaron

回答

1

上述错误出现,当你正在访问一个字典,其键是找不到的。 更好的调试方法是,使用print语句检查值 print vals ['etudiant_ids'], print vals ['etudiant_ids'] [0], print vals ['etudiant_ids'] [0] [2] , ,你可以知道密钥没有取到的位置。

并尝试避免含糊不清的语句,使用字典时使用vals.get('etudiant_ids'),如果找不到键而不是错误,将返回False。