odoo里面的read_group写法

#计算数
task_count = fields.Integer(compute='_compute_task_count', string="Task Count")



def _compute_task_count(self):
"""
计算任务条数
"""
task_data = self.env['project.task'].read_group([('project_id', 'in', self.ids), '|', ('stage_id.fold', '=', False), ('stage_id', '=', False)], ['project_id'], ['project_id'])
result = dict((data['project_id'][0], data['project_id_count']) for data in task_data)

for project in self:
project.task_count = result.get(project.id, 0)


@api.model
def read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True):
""""""
groupby_fields = set([groupby] if isinstance(groupby, pycompat.string_types) else groupby)
if groupby_fields.intersection(USER_PRIVATE_FIELDS):
raise AccessError(_("Invalid 'group by' parameter"))
return super(Users, self).read_group(domain, fields, groupby, offset=offset, limit=limit, orderby=orderby, lazy=lazy)
posted @ 2019-11-18 22:12  何双新  阅读(1193)  评论(0编辑  收藏  举报