Self.read 读取指定记录的指定字段 的小观念及方式.
-
设一个字段 employee_id 是 many2one('hr.employee',..... (跳过).
运作正常. 也可write 数据.
现在我要取得 employee_id 的值.
emp_id = self.read(cr,uid, ids,['employee_id','date_to'])
emp_id1 = emp_id[0]['employee_id'] or 1
我用 excespt 方式看看取出的值对不对
raise osv.except_osv(('Warning!'),('Notice : emp id : ' + str(emp_id1) + ' \n' + str(ids) ) )
应该回传是 1 才对啊...会什么会出现. (1,u'Administrator') 这整串字啊..
因为数据库是 1. -
重庆-mrshelly(49812643) 14:22:11
read 出来的就是 (id, name) 的组合.
杭州-猴哥(605620619) 14:25:50
emp_id[0]['employee_id'][0] 吧
上海-就这样(1683223795) 15:19:23
多方试的结果.似乎和字段的 fields 方式有关.
若字段是 many2one 的话 则又会回传 hr.employee 的 (id, name) 的list组合. 则再加index 取值. 如 杭州-猴哥的方式.
若字段是 text, datetime, selection 的fields 设置则直接用 emp_id[0]['XXX']
就可.
感谢 重庆-mrshelly, 杭州-猴哥 提示.解说.
重庆-mrshelly(49812643) 15:21:39
要是发到BBS里就靠谱了...
many2one 在 read 的时候就表现为 (id, name) 的 tuple
many2one 在 write 的时候, 直接使用id 就OK了.