计算字段作为 Odoo 10 中的列表
Computed field as a list in Odoo 10
我有一个代码可以在 Internet 上获取一些信息并将其 returns 作为 Python 列表。我想在 Odoo 树视图中显示(不保存在数据库中)。
为此,我创建了一个计算字段如下:
created_time = fields.Char(compute='_compute_created_time')
@api.multi
def _compute_created_time(self):
my_data = self.my_internet_data()
created_time_list = []
for created_times in my_data:
created_time_list.append(created_times['created_time'])
self.created_time = created_time_list
呈现树视图时,它会显示一行,其中包含所有数据。这不是我想要的方式。
我想在自己的行中显示列表中的每个数据。我相信要做到这一点,我不能使用 fields.Char() 作为字段类型。那么,我可以使用什么字段类型或任何其他解决方案?
要在树中显示它,您必须将数据插入 table
我的意思是你需要逐行插入数据为此使用 TransienModel
因为 odoo 会在一段时间后删除记录。
树视图将始终在您的 table(模型)上执行选择以获取数据
如果您将所有结果插入一个字段,这意味着您插入了
一条记录中的记录。
所以试试这个逻辑可能对你有帮助:
获取您的数据。
使用 odoo create 方法插入数据或使用游标 (self.env.cr) 插入数据以提高性能,因为 create 方法会做很多不需要的工作。
然后打开带有特殊域的树视图以仅显示插入的记录。
@api.multi
def show_result(self):
#1- fetch data
#2- insert data.
#3- return window action
return {
'type': 'ir.actions.act_window',
'name': '...'
'res_model': 'your.transienModel.name',
..
..
..
# special filter here to show only the inserted recrods
# like date or search parameters.
'domain': []
}
我有一个代码可以在 Internet 上获取一些信息并将其 returns 作为 Python 列表。我想在 Odoo 树视图中显示(不保存在数据库中)。
为此,我创建了一个计算字段如下:
created_time = fields.Char(compute='_compute_created_time')
@api.multi
def _compute_created_time(self):
my_data = self.my_internet_data()
created_time_list = []
for created_times in my_data:
created_time_list.append(created_times['created_time'])
self.created_time = created_time_list
呈现树视图时,它会显示一行,其中包含所有数据。这不是我想要的方式。
我想在自己的行中显示列表中的每个数据。我相信要做到这一点,我不能使用 fields.Char() 作为字段类型。那么,我可以使用什么字段类型或任何其他解决方案?
要在树中显示它,您必须将数据插入 table 我的意思是你需要逐行插入数据为此使用 TransienModel 因为 odoo 会在一段时间后删除记录。
树视图将始终在您的 table(模型)上执行选择以获取数据 如果您将所有结果插入一个字段,这意味着您插入了 一条记录中的记录。
所以试试这个逻辑可能对你有帮助:
获取您的数据。
使用 odoo create 方法插入数据或使用游标 (self.env.cr) 插入数据以提高性能,因为 create 方法会做很多不需要的工作。
然后打开带有特殊域的树视图以仅显示插入的记录。
@api.multi
def show_result(self):
#1- fetch data
#2- insert data.
#3- return window action
return {
'type': 'ir.actions.act_window',
'name': '...'
'res_model': 'your.transienModel.name',
..
..
..
# special filter here to show only the inserted recrods
# like date or search parameters.
'domain': []
}