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.register страницу XML и нажимаю на дерево. я понимаю

Something Went Wrong ks.register(569909,).ids Ошибка всплывающего окна.

Может кто-нибудь сказать мне, что пошло не так?


person aru    schedule 25.11.2020    source источник


Ответы (1)


Позвольте мне помочь.

Вы сначала ищете записи в модели 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]
person Adam Strauss    schedule 25.11.2020