Odoo:将res.company对象导出到JSON

col17t5w  于 2023-02-01  发布在  其他
关注(0)|答案(4)|浏览(175)
company = self.env['res.company'].search([('id', '=', 1)])
print company.name # prints 'my company' which is correct
print json.dumps(company) # error TypeError: res.company(1,) is not JSON serializable

问题是如何在json中简单地导出company对象?
我正在寻找一个通用的方式,将工作的任何模式。

piv4azn7

piv4azn71#

使用Model.read() .你也可以在read方法中指定要读取的字段(见doc).另外,datetime对象不是json可序列化的.幸运的是,Odoo已经提供了一个实用方法.

import json
from odoo.tools import date_utils

raw_data = company.read()
json_data = json.dumps(raw_data, default=date_utils.json_default)
print(json_data)
kr98yfug

kr98yfug2#

请输入验证码:

company = self.env['res.company'].search([('id', '=', 1)])
print company.name
print json.dumps(company.name)
svdrlsy4

svdrlsy43#

搜索将返回对象,所以我们必须手动添加字段到字典来构建JSON。我已经添加了一些字段,您可以添加更多字段。

company = self.env['res.company'].search([('id', '=', 1)])
params = {}
data = dict()
data['partner_id'] = company.partner_id
data['name'] = company.name
data['email'] = company.email
data['phone'] = company.phone
data['company_registry'] = company.company_registry
params['params'] = data
print json.dumps(params)
hwamh0ep

hwamh0ep4#

最后一个答案(Jether)是正确答案。
你也可以在odoo 16中使用
从odoo.tools导入json_default
代替
从odoo.tools导入日期实用程序

相关问题