📜  不显示列树odoo 8 - Python(1)

📅  最后修改于: 2023-12-03 15:35:55.275000             🧑  作者: Mango

不显示列树odoo 8 - Python

在Odoo 8中,我们可以在视图中使用“字段”属性来定义哪些列应该显示在网格视图中。默认情况下,Odoo会为每个包括在“字段”属性中的列生成一个列树,使用户能够按列进行排序和分组。然而,有时我们可能希望禁用该行为,以便用户无法对网格视图中的列进行任何更改。这可以通过以下步骤完成:

在XML视图中定义字段

首先,在网格视图的xml定义中,我们需要定义要显示的每列,方法是将它们包括在“字段”属性中,如下所示:

<tree>
    <field name="name"/>
    <field name="date"/>
    <field name="amount"/>
</tree>
在Python模型中定义列树

然后,在我们的Python模型中,我们需要为每个包含在视图的“字段”属性中的列定义一个列树,如下所示:

class MyModel(models.Model):
    _name = 'my.model'
    _description = 'My Model'

    name = fields.Char(string='Name')
    date = fields.Date(string='Date')
    amount = fields.Float(string='Amount')

    _order = 'name, date, amount'

    # Define the column tree for each field
    _group_by = {
        'name': 'name',
        'date': 'date:date',
        'amount': 'amount:sum',
    }

此代码片段为名为“MyModel”的模型定义了三个字段,即“名称”,“日期”和“金额”,并包括了对这些字段的排序定义。

禁用列树

要禁用列树,我们只需要将“_group_by”属性设置为空字典即可:

class MyModel(models.Model):
    _name = 'my.model'
    _description = 'My Model'

    name = fields.Char(string='Name')
    date = fields.Date(string='Date')
    amount = fields.Float(string='Amount')

    _order = 'name, date, amount'

    # Disable column tree
    _group_by = {}

现在,在打开网格视图时,用户将无法看到任何列树,并且不能对列进行排序或分组。

以上就是如何在Odoo 8中禁用列树的方法。