Как суммировать рассчитанные в qweb отчете odoo

Как рассчитать много записей в отчете qweb используйте odoo. Я попытался создать метод в отчете py для расчета

@api.one
@api.depends("total_do")
def _get_total(self):
    batch_ids = self.batch_ids
    total_do = self.total_do
    for in item batch_ids:
        total_do += item.qty_received
        print total_do

и я показываю в qweb вот так:

<div class="col-xs-1" style="text-align:center;border: 1px solid  #568eff;border-left:0px;"> 
    <span t-esc="o.total_do" />
</div>

Когда я печатаю отчет, я хочу показать сумму из многих строк. а в моем случае просто показать 0


person Mahroza Pradana    schedule 14.12.2015    source источник


Ответы (2)


Вы должны установить свой общий метод в локальном контексте этой модели (report_sxw.rml_parse)

def __init__(self, cr, uid, name, context): 
    super(class_name, self).__init__(cr, uid, name, context=context)
    self.localcontext.update({
           'time': time,
           '_get_total': self._get_total,
    })

Вам просто нужно обновить ту часть, откуда вы вызываете этот общий метод.

<div class="col-xs-1" style="text-align:center;border: 1px solid  #568eff;border-left:0px;"> 
    <span t-esc="o._get_total" />
</div>

И ваш общий метод будет таким,

def _get_total(self):
    batch_ids = self.batch_ids
    total_do = 0
    for in item batch_ids:
        total_do += item.qty_received
    return total_do

Для получения дополнительной помощи см. здесь

person Emipro Technologies Pvt. Ltd.    schedule 14.12.2015

может ты ищешь это

<t t-esc="sum(l.amount for l in object.lines)"/>

и эта ссылка Цикл QWeb не может устанавливать значения для переменных вне цикла

person P.Traxex    schedule 15.07.2016