当我有不同的模型时如何过滤

How to filtred when I have different models

这是.py:

class Travsup(models.Model):
    _name = 'facturation.travsup'
    attachment_id = fields.Many2one('facturation.attachement')
    ouvrage_id = fields.Many2one('facturation.ouvrage',domain="?????")

class Attachement(models.Model):
    _name = 'facturation.attachement'
    travSup_ids =   fields.One2many('facturation.travsup','attachment_id')
    contrat_id  =   fields.Many2one('facturation.contrat',string='Contrat',required=True)


class Contrat(models.Model):
    _name = 'facturation.contrat'
    ouvrage_ids = fields.One2many('facturation.ouvrage', 'contrat_id', string='Ouvrages')

class Ouvrage(models.Model):
    _name = 'facturation.ouvrage'
    contrat_id = fields.Many2one('facturation.contrat', string='Contrat')

如何过滤 ouvrage,当我更改 contrat_id 附件模型时,我得到了所有 同一个 contrat_id 模型的 ouvrage。

如果Attachement.contrat_id == Ouvrage.contrat_id 那么travSup_ids.ouvrage_id = Ouvrage.id

您可以在表单视图中像这样指定域:

<!-- this field must appear in the form so we can use it in domain -->
<field name="contrat_id"/>

<field name="travSup_ids">
    <tree....>
        <field name="ouvrage_id" domain="[('contrat_id', '=', parent.contrat_id)]/>

    </tree>
    <form>
        ....
        ....
        <field name="ouvrage_id" domain="[('contrat_id', '=', parent.contrat_id)]/>
    </form>
</field>

在嵌入表单或树中,您可以通过以下方式访问当前表单的字段 使用 parent.field_name