Roe*_*ans 10
(因为我是通过谷歌来到这里:)
您也可以从Odoo Shell执行此操作:
# python odoo.py shell -c openerp-server.conf -d <database>
>>> model = env['account.invoice']
>>> env.add_todo(model._fields['amount_total'], model.search([]))
>>> model.recompute()
>>> env.cr.commit()
Run Code Online (Sandbox Code Playgroud)
Odoo外壳有9,10和8个OCA模块.
在 v8.0(也应该在 9.0 中工作)中,您可以这样做:
# Recompute amount_total for account.invoice
env.add_todo(model._fields['amount_total'], object)
model.recompute()
# where
# object - recordset of instances to recompute field for
# model - recordset instances model
Run Code Online (Sandbox Code Playgroud)
以上代码可以直接用于服务器动作。
在 v13 中,上述语法仍然有效,但 add_todo 应替换为 add_to_compute:
env.add_to_compute(model._fields['amount_total'], model.search([]))
model.recompute()
Run Code Online (Sandbox Code Playgroud)