Odoo 10-Many2one过滤器xml

时间:2019-05-22 08:24:10

标签: python xml odoo

我正在跟踪我的Python程序,并且试图仅恢复通过Python函数找到的记录。

这是我的功能:

@api.onchange('partner_id')
def get_foyer(self):
    if self.partner_id:
        actually_partner_id = self.partner_id.name
        if actually_partner_id:
            records_foyer_id = self.env['horanet.relation.foyer'].search([('partner_id', '=', actually_partner_id)],
                                                                         order="id desc")
            for rec in records_foyer_id:
                self.foyer_id = rec.id

@api.onchange('foyer_id')
def get_responsibles_members_foyer(self):
    if self.foyer_id:
        actually_foyer = self.foyer_id.foyer_id
        if actually_foyer:
            domain = [('foyer_id', '=', actually_foyer.id)]
            records_foyer_id = self.env['horanet.relation.foyer'].search(domain)
            for rec in records_foyer_id:
                print " " + rec.partner_id.name
                if rec.partner_id:
                    domain_partner = [('foyer_id', '=', self.foyer_id.foyer_id.id),
                                      ('is_responsible', '=', True)]
                    records_partner_id = self.env['horanet.relation.foyer'].search(domain_partner)
                    for rec_partner in records_partner_id:
                        if rec_partner.partner_id:
                            self.school_responsible_partner1 = rec_partner.partner_id.id

这些功能有两个用途:

->自动填写foyer_id字段(恢复房屋) ->自动填写“ school_responsible_partner1”字段(负责此家庭的成员的回收)

直到没有问题为止。

但是,当我推出2个many2one字段时,我得到了所有房屋或任何家庭的所有成员。 您有想法只看我感兴趣的录音吗?

注意,同一个人可以拥有2所房屋,因此我必须能够选择其中之一。

我听说它可能在xml中发生。但是如何?

谢谢

1 个答案:

答案 0 :(得分:0)

在.xml文件中使用域。像这样:

<field name="foyer_id" domain="[('partner_id', '=', partner_id)]"/>

然后,您将只能选择具有已经分配的partner_id的foyer_id。但是,如果您没有选择任何partner_id,则将没有可用的foyer_id。在这种情况下,如果您希望选择任何一个,请使用“?=”运算符,而不是“ =”。

仅当您使用相同格式的名为“ partner_id”的字段时,此方法才有效。