如何将列表中的数据放入many2many
how to put data from list to many2many
我想把数据表单列表放到many2many
@api.multi
def favorite_menus(self):
......
return popular_words[:3]
并且我尝试显示 many2many 字段
(popular_word 中的数据是 [a,b,c])
menu = fields.Many2many(comodel_name='lunch.order.line', default=lambda self:[self.favorite_menus()])
在 odoo 关系字段中接受一个命令列表,所以如果你的列表是一个命令列表,我认为它应该是好的:
创建方法中使用默认值:
要使用 4 cammond 添加记录,您的列表应包含如下数据:
command 4 告诉odoo把id添加到记录列表的第二位
[(4, id), (4, id2), .......]
id 是您要添加为整数值的记录的 ID。
如果要创建新记录,请使用 0 命令:
[(0, 0, {'field_name': value_name, 'field_2': value_2 }) , ...]
命令 0 告诉 odoo 从字典的最后位置创建一条记录
你不需要默认值,而是需要一个默认域:
menu = fields.Many2many(
comodel_name='lunch.order.line',
domain=lambda self:self.favorite_menus())
@api.multi
def favorite_menus(self):
""" return a default domain."""
# first calculate the list of the menu that you want
# the user to select one of them i'm assuming that you use search
# so the result is a recordSet of menu
menus = .....
return "[('id', 'in', '%s')]" % (tuple(menus.ids), ) # keep the comma
# or try this i think bouth work
return [('id', 'in', menus.ids)]
注意:您可能需要更改域以满足您的需要。
但要防止用户选择您需要过滤的其他元素
他们在 m2m 或 o2m 或 m2o 领域使用域。
我想把数据表单列表放到many2many
@api.multi
def favorite_menus(self):
......
return popular_words[:3]
并且我尝试显示 many2many 字段 (popular_word 中的数据是 [a,b,c])
menu = fields.Many2many(comodel_name='lunch.order.line', default=lambda self:[self.favorite_menus()])
在 odoo 关系字段中接受一个命令列表,所以如果你的列表是一个命令列表,我认为它应该是好的:
创建方法中使用默认值:
要使用 4 cammond 添加记录,您的列表应包含如下数据:
command 4 告诉odoo把id添加到记录列表的第二位
[(4, id), (4, id2), .......]
id 是您要添加为整数值的记录的 ID。
如果要创建新记录,请使用 0 命令:
[(0, 0, {'field_name': value_name, 'field_2': value_2 }) , ...]
命令 0 告诉 odoo 从字典的最后位置创建一条记录
你不需要默认值,而是需要一个默认域:
menu = fields.Many2many(
comodel_name='lunch.order.line',
domain=lambda self:self.favorite_menus())
@api.multi
def favorite_menus(self):
""" return a default domain."""
# first calculate the list of the menu that you want
# the user to select one of them i'm assuming that you use search
# so the result is a recordSet of menu
menus = .....
return "[('id', 'in', '%s')]" % (tuple(menus.ids), ) # keep the comma
# or try this i think bouth work
return [('id', 'in', menus.ids)]
注意:您可能需要更改域以满足您的需要。 但要防止用户选择您需要过滤的其他元素 他们在 m2m 或 o2m 或 m2o 领域使用域。