OpenERP-仅向类别内的某些产品添加字段

OpenERP-仅向类别内的某些产品添加字段,openerp,openerp-7,Openerp,Openerp 7,我正在设置OpenerpV7。我知道如何创建模块等等 问题是并非所有产品都具有相同的字段。例如,对于T恤衫,我会选择颜色、尺寸。但对于皮带,我会有:材料,长度作为一个例子 我知道使用多个变体的选项,但它非常令人困惑。它会为维度值创建一个新列,但产品名称中也包含维度值。这很烦人。 此外,只能从销售模块访问产品模板,因此我们的采购部门无权访问 如果在用户选择产品类别后出现预定义模板,我希望看到更多。由于同一类别的产品具有相同的现场要求。我建议您: 定义模型中的所有字段颜色、大小、材质等。。然后根据产

我正在设置OpenerpV7。我知道如何创建模块等等

问题是并非所有产品都具有相同的字段。例如,对于T恤衫,我会选择颜色、尺寸。但对于皮带,我会有:材料,长度作为一个例子

我知道使用多个变体的选项,但它非常令人困惑。它会为维度值创建一个新列,但产品名称中也包含维度值。这很烦人。 此外,只能从销售模块访问产品模板,因此我们的采购部门无权访问


如果在用户选择产品类别后出现预定义模板,我希望看到更多。由于同一类别的产品具有相同的现场要求。

我建议您:

定义模型中的所有字段颜色、大小、材质等。。然后根据产品类别从视图中隐藏

要根据category_id值隐藏某些字段,可以尝试以下操作:

<field name="some_field"
       attrs="{'invisible': [('category_id', 'not in', [1, 2, 3])]}"/>

我找到了一个更好的解决方法,那就是使用模块product_custom_属性,可从以下网站下载:


本模块让我创建属性集,这些属性集可以稍后加载到产品中,我还可以根据属性值筛选产品,这很酷。

这是唯一的方法吗?我担心这会增加数据库的大小,因为很多记录都有空字段,因为它不适用于它们的类别。如果根据所选类别隐藏字段,如何隐藏?如果用户更改类别名称,则需要使用类别id而不是类别名称来完成。恐怕这是唯一可以接受的方法。至少我没有看到另一个。请参阅我的更新答案,以了解如何根据类别ID隐藏某些字段的示例。谢谢@Andrei,我可能会修改它以仅显示它是否在类别中以及它是否是父类别的子类别。我可以想象这将成为一个巨大的工作来建立这样,但如果这是唯一的方式。。。