我是odoo的初学者。 这里有一个问题使我受挫。 我想在创建列表时自动生成一个序列号。
name = fields.Char("過磅單號", compute="_generate", store=True)
@api.multi
@api.onchange("name")
def _generate(self):
'''WL + 190227 + 001...999
2 + 6 + 3
'''
# prefix WL + yymmdd
_serial = 'WL' + dt.today().strftime("%y%m%d")
# search today's last one data on db
obj = self.env['yc.weight'].search([('name', '=like', _serial + "%")], limit=1, order='name DESC')
if obj:
_next = int(obj[0].name[8:]) + 1
_serial += '%03d' % _next
else:
_serial += '001'
self.name = _serial
抛出错误:
_next = int(obj [0] .name [8:])+ 1
TypeError:“布尔”对象不可下标
但是它可以在终端机上工作
>>> obj[0].name
'WL190305058'
>>> _next = int(obj[0].name[8:]) + 1
>>> _next
59
我知道ir.sequence模型可以解决这个问题, 但我仍然想知道怎么回事。
谢谢