具有节点的分层树

时间:2014-11-17 08:33:15

标签: openerp odoo

我正在编写一个模块来管理某些分支 每个分支都可以包含子分支 有一个字段(类型)决定了分支的类型(子或主)。

 _columns = {
        'name'                  :   fields.char('Name',size=120,required=True),
        'no'                    :   fields.char('Number'),
        'type'                  :   fields.selection([('s','Sub'), ('m','Main Branch ')],'Type',help="Branch type: Main or Sub branch."),

我需要在OpenERP的视图中显示此层次结构 我可以像这样使用普通的树视图:

<!-- Tree view of branches -->
    <record id="view_branch_tree" model="ir.ui.view">
        <field name="name">branchs.branch.tree</field>
        <field name="model">branchs.branch</field>
        <field name="arch" type="xml">
            <tree string="station" >
                            <field name="name"/>
                            <field name="no"/>
                            <field name="type"/>

但我不知道如何在分层树中显示它们,主要分支作为帐户图表之类的节点。

1 个答案:

答案 0 :(得分:2)

您需要执行以下操作:

1-在.py文件中添加一个类型为(one2many)的列,其中包含子节点的id和另一个指向父节点的列:

'parent_id'    :   fields.many2one('branches.branch','Parent Branches'),
'child_ids'    :   fields.one2many('branches.branch', 'parent_id', 'Children'),

2-在xml文件中:  添加此字段:                       child_ids

在该部分中,将viewtype更改为tree:

                 <field name="view_type">tree</field>

最后,添加此过滤器以仅显示节点中的父项:

                 <field name="domain">[('parent_id','=',False)]</field>

那就是它。