显示了我的源代码片段。我需要检查两个函数是否返回空值。?
1.当我使用新鲜数据库时, bpl_worker 将清空&然后它返回getitem error.i也添加了 coalesce 关键字,但结果相同 (功能1)
2.当我使用全新数据库时, bpl.company.define 表将为空,并且它还返回error.how以检查该类型函数中的null。 (功能2)
我尝试使用以下代码。但结果相同
if no_define_object_no[0].current_no :
请告诉我这个问题。当我使用新数据库时,我必须面对这个问题
def _max_reg_no(self, cr, uid, context=None):
cr.execute("""
select coalesce(register_no, 'W00001') as reg_no
from bpl_worker
where id in (select max(id) from bpl_worker)
""")
if cr:
res = cr.fetchone()[0]
emp_no = str(res)
emp_int = emp_no[1:6]
emp_no_int = int(emp_int)
result = 'W' + (str(emp_no_int + 1).zfill(4))
return result
def on_change_division(self, cr, uid, ids, division_id, context=None):
if division_id:
division_object = self.pool.get('bpl.division.n.registration')
division_browse = division_object.browse(cr, uid, division_id, context=context)
result_division_id = division_browse.id
search_condition = [
('department_id', '=', result_division_id)
]
no_define_object = self.pool.get('bpl.company.define')
no_define_id = no_define_object.search(cr, uid, search_condition, context=context)
no_define_object_no = no_define_object.browse(cr, uid, no_define_id, context=context)
return {'value': {'emp_no': no_define_object_no[0].current_no }}
答案 0 :(得分:1)
试试这段代码:
emp_no = no_define_object_no and no_define_object_no[0].current_no or False
return {'value': {'emp_no': emp_no}}