(分享)one2many的domain实现(o2m在view中按条件显示所需列表)
-
需求见下图,把一个one2many中的many按不同的需求列表显示。
[img [检测到链接无效,已移除] /img]
[b]首先在view中放了两个Page,对应两个相同的o2m字段,然后分别作Domain,不成功,从网上查询得知,o2m在view中作domain无效。[/b]
[b]求助QQ群,经大侠们指点,可以在py文件中分别定义两个带domain的one2many字段,指向同一个m表,测试成功![/b]
[b]实现方法:[/b]
主表:ykjfund.main
................
'fund_ids': fields.one2many('ykjfund.detail', 'detail_id', string=u"有效明细",domain=[('date_stop', '=',None )]), [b]#date_stop 为子表的字段[/b]
'fund_ids2': fields.one2many('ykjfund.detail', 'detail_id', string=u"失效明细",readonly=True,domain=[('date_stop','!=',None)]),
子表:ykjfund.detail
..............
'date_stop': fields.date(u'止'),
'detail_id': fields.many2one('ykjfund.main', u'名称'),
view:
<notebook colspan="4">
<page string="有效明细">
<field name="fund_ids" colspan="4" nolabel="1" >
<tree string="明细">
.......
</tree>
</field>
</page>
<page string="失效明细">
<field name="fund_ids2" colspan="4" nolabel="1" >
<tree string="明细">
......
</tree>
</field>
</page>
[b]结论:one2many在view中实现不了domain,但可以在py文件中定义![/b]