首页 > 解决方案 > Odoo 13 - 计算字段 - 未按预期工作

问题描述

我有一个模型ks.register有一个字段meter_ids,它是作为页面添加到 XML 笔记本标签中的计算字段。

计算字段如下:

meter_ids = fields.One2many('ks.meter', string='Meters', compute="_get_register")

以下是该字段的计算方法

def _get_register(self):
    ids = {}
    if not self.ids:
        return meter_ids
 query = 
    cr.execute(query)
    meter_records = cr.fetchall()
    for i in meter_records:
        ids[i[0]] = i[1] if i[1] != [None] else []
    return ids

当我转到ks.registerXML 页面并点击树视图时。我懂了

Something Went Wrong ks.register(569909,).ids弹出错误。

有人可以告诉我出了什么问题吗?

标签: pythonpython-3.xodooodoo-13

解决方案


让我试着帮忙。

您首先在ks.meter模型中搜索与模型链接的记录ks.register?为此,您创建了One2many字段。

因此,您也可以这样做,而不是编写查询。您可以使用Many2one字段进行搜索ks.meter

for i in self:
    records = self.env['ks.meter'].search([('Many2one_field', '=', i.id)])
    getting_ids = [j.id for j in records]
    i.meter_ids = [6, 0, getting_ids]

推荐阅读