Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python odoo 12中树状图上的计算字段_Python_Odoo_Odoo 12 - Fatal编程技术网

Python odoo 12中树状图上的计算字段

Python odoo 12中树状图上的计算字段,python,odoo,odoo-12,Python,Odoo,Odoo 12,我试图计算一个要在树视图中显示的值,问题是我的私有函数从未执行过,并且没有为我的计算字段设置值 我简化了以下代码: class ProjectProject(models.Model): _inherit = "project.project" assigned = fields.Char(string='Assigned multi', compute='_roles_assigned', store=False) @api.multi @api.depend

我试图计算一个要在树视图中显示的值,问题是我的私有函数从未执行过,并且没有为我的计算字段设置值

我简化了以下代码:

class ProjectProject(models.Model):
    _inherit = "project.project"
    assigned = fields.Char(string='Assigned multi', compute='_roles_assigned', store=False)

    @api.multi
    @api.depends('task_ids')
    def _roles_assigned(self):
        #do dome calculations
        assigned = ' test of 1' #'0 / {total}'.format(total=total)
        return assigned
@api.multi
def _roles_assigned(self):
    #do dome calculations
    for record in self:
        assigned = ' test of 1' #'0 / {total}'.format(total=total)
        record.assigned = assigned


正如您在图像中看到的,当我们在树状视图中显示计算字段时,该值始终为空,它将设置多个记录。因此,我们必须为每个记录集设置值

请尝试使用以下代码:

class ProjectProject(models.Model):
    _inherit = "project.project"
    assigned = fields.Char(string='Assigned multi', compute='_roles_assigned', store=False)

    @api.multi
    @api.depends('task_ids')
    def _roles_assigned(self):
        #do dome calculations
        assigned = ' test of 1' #'0 / {total}'.format(total=total)
        return assigned
@api.multi
def _roles_assigned(self):
    #do dome calculations
    for record in self:
        assigned = ' test of 1' #'0 / {total}'.format(total=total)
        record.assigned = assigned

您必须迭代记录并为其赋值,请检查下面的代码

@api.multi
def _roles_assigned(self):
    for rec in self:
        rec.assigned = 'assign your value here'

您所做的是直接为字段设置值,但它不会工作,因为您的计算将用于所有记录,您必须进行循环并为每个记录分配值。检查我下面的代码并找到答案。他没有给任何东西赋值,但你的答案是正确的。Odoo13的一点提示:必须为调用计算方法的每个记录集赋值。在早期版本中,这是不需要的,但在Odoo 13中,如果不这样做,您将得到错误。对两个回答者来说:这是一个非常好的问题,为什么不向上投票呢?嗯,他需要填充这些值,但他没有为字段指定任何值,这就是为什么它没有显示在树视图中的原因@杰克:谢谢你的回答,因为两者都有相似的方法,我只是把第一个回答作为一个答案,我很欣赏这种合作