我正在编写一个模块来管理某些分支 每个分支都可以包含子分支 有一个字段(类型)决定了分支的类型(子或主)。
_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"/>
但我不知道如何在分层树中显示它们,主要分支作为帐户图表之类的节点。
答案 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>
那就是它。