Python 如何将数据从列表中放入多个

Python 如何将数据从列表中放入多个,python,openerp,odoo-9,odoo-10,Python,Openerp,Odoo 9,Odoo 10,我想把数据表列表放在很多地方 @api.multi def favorite_menus(self): ...... return popular_words[:3] 我试着展示出这么多的领域 (流行语中的deta是[a,b,c]) In-odoo Relationship字段接受命令列表,因此如果您的列表是命令列表,那么我认为它应该是好的: 默认值用于创建方法: 要添加记录,请使用4 cammond。您的列表应包含以下数据: 命令4告诉odoo将id添加到记录列表的第二位 [(4

我想把数据表列表放在很多地方

@api.multi
def favorite_menus(self):
......
return popular_words[:3]
我试着展示出这么多的领域 (流行语中的deta是[a,b,c])


In-odoo Relationship字段接受命令列表,因此如果您的列表是命令列表,那么我认为它应该是好的:

默认值用于创建方法:

要添加记录,请使用4 cammond。您的列表应包含以下数据:

命令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字段中使用域。

我添加
return[(4,popular_菜单)作为popular_菜单的popular_单词[:3]
menu=fields.Many2many('sunch.order.line',默认值=lambda self:self.favorite_菜单())
它仍然显示数据库中的所有数据。如何仅显示列表中的数据?您所说的显示是指当您单击“添加项”时,它会显示所有菜单。或者,当您创建记录时,许多字段操作系统加载了所有记录?我想让函数“最喜欢的东西”在向导中显示最频繁的
menu=fields.manymany('sunch.order.line',default=lambda self:self.favorite_menu())
是向导中的命令。对不起,如果我不明白。我对odoo非常陌生。好的,当你用户点击add item时,你只想看到这个菜单列表,这样他就可以选择一个或多个菜单。我可以用什么方法创建它??
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)]