我想将数据表格列表添加到many2many
to_categorical
我尝试显示尽可能多的字段 (在popular_word中的详细信息是[a,b,c])
@api.multi
def favorite_menus(self):
......
return popular_words[:3]
答案 0 :(得分:1)
在odoo关系字段中接受一个命令列表,所以如果你的列表是一个命令列表,我想它应该是好的:
默认用于create方法:
添加记录使用4 cammond你的列表应包含如下数据:
命令4告诉odoo在记录列表的第二位添加id
[(4, id), (4, id2), .......]
id是要添加为Integer值的记录的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字段中使用域名。