как обновить поле odoo One2many из списка словарей? - PullRequest
0 голосов
/ 13 июля 2020

Я создал метод, который перебирает все заказы pos, чтобы получить данные оттуда, чтобы использовать их в отчете, мне нужно отобразить эти данные в поле One2many. Перед его печатью я много пытаюсь, но данные, созданные в модель и не отображается в текущем поле

вот что я сделал,

data = fields.One2many(comodel_name="onepos.report.line", inverse_name="report", string="", required=False, )

def getreport(self):

    data = self.env['pos.order'].search([])
    datas=[]
    pos_dict= {}
    report= self.env['onepos.report.line'].search([])
    for rec in data:
        con = rec.config_id.name
        for line in rec.lines:
            if con in pos_dict.values():
                print('hiiiiiiiiiii')
                # total_sales = pos_dict[rec.config_id.name]
                total_sales += line.price_subtotal_incl
                res = {
                    'total': total_sales,
                    'pos': con,
                }
                datas.append(res)
            else:
                total_sales = line.price_subtotal_incl
                res2 = {
                    'total': total_sales,
                    'pos': con,
                }
                datas.append(res2)
    if datas:
        print(len(datas), )
        print(datas, )

        cntr = defaultdict(Counter)
        for d in datas:
            cntr[d['pos']].update(d)
        datas = [dict(v, **{'pos': k}) for k, v in cntr.items()]

        report.create(datas)

это связанная модель

class reporttotalline(models.Model):
_name = 'onepos.report.line'

pos = fields.Char(string="", required=False, )
total = fields.Char(string="", required=False, )

report = fields.Many2one(comodel_name="onepos.report", string="", required=False, )

как я могу обновить поле в текущая форма?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...