如何在表单视图中显示many2one字段的所有记录,而不是在odoo 10中显示下拉列表。 例如,我有一个产品类别和产品。 当我从下拉列表中选择产品类别时,所有产品都属于该类别,而不是下拉列表。
答案 0 :(得分:1)
这里我假设您有类别ID,
category_id = fields.Many2one('product.category', "Product Category")
将 Many2many product.product 字段添加到您的模型中以获取产品记录。
product_ids = fields.Many2many('product.product', "Products")
现在您需要在 category_id 字段中定义 onchange ,例如。
@api.onchange('category_id')
def onchange_product_category(self):
if self.category_id:
self.product_ids = [(5,)] # unlink all existing records of product
product_recs = self.env['product.product'].search([('categ_id', '=', self.category_id.id)])
self.product_ids = [(4, x) for x in product_recs] # link the product records of selected category
如果您不想在列表视图中显示产品记录,可以在表单视图中使用小部件 many2many_tags ,例如,
<field name="product_ids" widget="many2many_tags"/>
它适用于你。