我正在跟踪我的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中发生。但是如何?
谢谢
答案 0 :(得分:0)
在.xml文件中使用域。像这样:
<field name="foyer_id" domain="[('partner_id', '=', partner_id)]"/>
然后,您将只能选择具有已经分配的partner_id的foyer_id。但是,如果您没有选择任何partner_id,则将没有可用的foyer_id。在这种情况下,如果您希望选择任何一个,请使用“?=”运算符,而不是“ =”。
仅当您使用相同格式的名为“ partner_id”的字段时,此方法才有效。