#自定义显示名称
defname_get(self):
result=[]for order inself:
rec_name= "%s(%s)"%(record.name,record.date_done)
result.append((record.id, rec_name))returnresult#新添加函数name_search
@api.modeldef name_search(self, name='', args=None, operator='ilike', limit=100):if notargs:
args=[]
products=[]ifname:
positive_operators= ['=', 'ilike', '=ilike', 'like', '=like']
products= self.env['product.product']if operator inpositive_operators:
products= self.search([('name', 'ilike', name)] + args, limit=limit)if notproducts:
products= self.search([('size', 'ilike', name)] + args, limit=limit)if notproducts:
products= self.search([('material', 'ilike', name)] + args, limit=limit)else:
products= self.search(args, limit=limit)returnproducts.name_get()#添加约束
from odoo.exceptions importValidationError
@api.constrains('age')def_check_something(self):for record inself:if record.age > 20:raise ValidationError("Your record is too old: %s" %record.age)#all records passed the test, don't return anything
#更新时间
@api.multidefchange_updatetime(self):for order inself:
order.update_time=fields.Datetime.now()
在SQL语句里或ORM里 记录集要用tuple 不能用list
search([('id','in',tuple(ids)])
调用mapped获取员工名字return employee_ids.mapped('name')#获取用户组:self.user_has_groups('base.group_no_one')
看板默认分组当无此类型当值时也默认出现在看板里#对于odoo12来说 group_expand='' 对于selection类型
state = fields.Selection([('a', "A"), ('b', "B"),('c', "C"), ('d', "D")], group_expand='_expand_states')def_expand_states(self, states, domain, order):#return all possible states, in order
return [key for key, val intype(self).state.selection]#对于odoo12来说 group_expand='' 对于many2one类型
stage_id = fields.Many2one('crm.stage', string='Stage', ondelete='restrict', track_visibility='onchange', index=True,
domain="['|', ('team_id', '=', False), ('team_id', '=', team_id)]",
group_expand='_read_group_stage_ids', default=lambdaself: self._default_stage_id())
@api.modeldef_read_group_stage_ids(self, stages, domain, order):"""Read group customization in order to display all the stages in the
kanban view, even if they are empty"""stage_ids= stages._search([], order=order, access_rights_uid=SUPERUSER_ID)returnstages.browse(stage_ids)#以超级用户身份创建记录
rent_as_superuser = self.env['library.book'].sudo()
rent_as_superuser.create(vals)#获取当前用户对于的员工
employee= self.env.user.employee_ids[0] #对象
employee.id
employee.name
按钮写法