【发布时间】:2017-03-17 10:22:56
【问题描述】:
我的问题如下:
我的class Agreement 中有两个 one2many 字段,每个字段都包含一个指向 class Unit 的 many2one 字段。
我希望能够选择agreement_invoice_ids 中的一些单位,agreement_info_ids 中的单位应根据此选择自动过滤。
我尝试在 xml 中使用域,在 python 中设置域,使用 api.onchange 和 api.depends 的不同功能。我希望这实际上是可能的,我只是错过了正确的做法。
我非常愿意接受任何建议。
下面是我的代码的简化版本:
agreement.py
class Agreement(models.Model):
_name = 'model.agreement'
agreement_invoice_ids = fields.One2many('model.invoice', 'agreement_id')
agreement_info_ids = fields.One2many('model.info', 'agreement_id')
class Invoice(models.Model):
_name = 'model.invoice'
agreement_id = fields.Many2one('model.agreement')
unit_id = fields.Many2one('model.unit')
class Info(models.Model):
_name = 'model.info'
agreement_id = fields.Many2one('model.agreement')
unit_id = fields.Many2one('model.unit')
agreement.xml
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<data>
<record model="ir.ui.view" id="agreement_form_view">
<field name="name">agreement.form</field>
<field name="model">model.agreement</field>
<field name="arch" type="xml">
<form string="Agreement Form">
<field name="agreement_invoice_ids">
<tree editable="bottom">
<field name="unit_id"/>
</tree>
</field>
<field name="agreement_info_ids">
<tree editable="bottom">
<field name="unit_id"/> <!-- should be filtered based on selection made for unit_id in agreement_invoice_ids -->
</tree>
</field>
</form>
</field>
</record>
</data>
</openerp>
【问题讨论】:
标签: python-2.7 one-to-many odoo-8 many-to-one