Odoo 11 — Отфильтруйте множество 2-х полей

#python #xml #odoo

Вопрос:

У меня есть 2 поля, которые указывают на 2 разные модели.

 class ResPartnerSchool(models.Model):
    _name = 'ecole.partner.school'
    foyer_id = fields.Many2one(string="Foyer", comodel_name="horanet.relation.foyer",
                               domain="[('partner_id','=', partner_id)]", store=True, readonly=False)
    partners_in_foyer_id = fields.Many2one(string="Name", comodel_name="res.partner", readonly=False, store=True)
 

Я хотел бы восстановить партнеров, которые находятся в доме, который я восстановил из своей формы.
введите описание изображения здесь

Мне удалось выполнить функцию onchange () для автоматического извлечения одного из членов семьи.

 @api.onchange('foyer_id')
def get_partners_foyer(self):
    if self.foyer_id:
        foyer = self.foyer_id.foyer_id
        domain = [('foyer_id', '=', foyer.id)]
        members = self.foyer_id.search(domain, limit=1)
        if not members :
            _logger.info(f"Pas de membres trouvés pour : {self.partner_id.name}")
        else:
            if members.partner_id:
                self.partners_in_foyer_id = members.partner_id.id
 

Но как получить всех членов семьи и отобразить их в представлении xml? В настоящее время в представлении извлекаются все партнеры таблицы res.partner.

Спасибо за вашу помощь !

Ответ №1:

Сначала вы вводите один flag(boolean type) из res.partner home них , а затем используете этот домен (domain="[('home','=', True)]") в своей Many2one(partners_in_foyer_id) области.

Комментарии:

1. Я не понимаю. Вы можете объяснить ?

2. поместите одно логическое поле в res.partner, которое зависит от домохозяйства, если ваш партнер является домохозяйством, то это верно, в противном случае это ложь. и используйте домен в вашем поле many2one для фильтрации только домашних партнеров.