2016-08-15 88 views
1

我的问题得到名单的价值:在日志ODOO '功能' 对象有没有属性 '__getitem__'

def _get_state(self, cr, uid, context=None): 
    idemployee = _default_employee(self, cr, uid, context=None) 
    # sql = " SELECT id, sequence, name FROM wf_state ORDER BY sequence " 
    sql = " SELECT C.id AS id, C.sequence, C.name, member_id, name_related AS employee_name, \ 
        B.name AS group_name, C.name AS state_name FROM wf_group_member A \ 
      LEFT JOIN wf_group B ON B.id = A.group_id \ 
      LEFT JOIN wf_process BB ON BB.id = B.process_id\ 
      LEFT JOIN wf_state C ON C.group_id = B.id \ 
      LEFT JOIN hr_employee D ON D.id = A.member_id \ 
      WHERE LOWER(code) = 'ca' AND member_id = %s ORDER BY sequence " 
    res = [] 
    cr.execute(sql, [(idemployee)]) 
    ardata = cr.fetchall() 
    for data in ardata: 
     # res.append((data[1], data[2])) 
     res.append((data[1], data[2])) 
    return res 

array_state = _get_state 

class cashadvance(osv.osv): 
    _name = 'ga.cashadvance' 
    _columns = { 
     'state' : fields.selection(array_state, 'Status', readonly=True, required=True), 
    } 

_defaults={ 
     'state' : array_state[0][0], 
    } 

错误是: '状态':array_state [0] [0], 类型错误:“功能”对象有没有属性“getitem_”

请帮我在这

+0

如果以下任何答案没有正确解决您的问题,请尝试通过标记答案或做出进一步评论来关闭此问题,如果您不提供反馈,问题仍然存在,并且标记答案是一种方式说谢谢谁回答你的问题,这显然是@kenly – danidee

+0

好吧,谢谢你提醒我:) – yogakumboro

+0

这不是全部,在upvote和downvote箭头下,你会看到一个灰色的复选标志,点击它来标记答案为正确的一个....它会变成绿色,当你这样做...之后,删除你的答案你发布它应该是一个评论,而不是 – danidee

回答

1

更改_defaults到:

_defaults={ 
    'state' : lambda self, cr, uid, context: array_state(self, cr, uid, context)[0][0], 
    } 

你必须确保结果不为空。

+0

解决了Kenly,谢谢。它就像一个魅力 – yogakumboro

+0

@yogakumboro随时接受答案或upvote它。 – Zety

0

你inteded调用_get_state功能。你应该这样做:

array_state = _get_state(args...) 

您省略了括号,这样的话你指定的函数对象本身成为array_state,而不是从_get_state指派返回值。

然后,你实际上试图把一个索引放在函数对象上,这当然不支持这种操作。支持索引的对象(如从_get_state返回的对象)有一个名为__getitem__的方法。

+0

我试着调用_get_state函数: array_state = _get_state( self,cr,uid,context = None) 但显示此错误: array_state = _get_state(self,cr,uid,context = None) NameError:name'self'未定义 – yogakumboro

相关问题