Домен в Many2one Odoo 11 - PullRequest
       38

Домен в Many2one Odoo 11

1 голос
/ 17 марта 2019

У меня есть три модели

class ZohoTags(models.Model):
    _name = 'zoho.tags'

    name = fields.Char(string="Tags")
    tag_id = fields.Char(string="Tag Id")


class TagsLine(models.Model):
    _name = 'zoho.tags.line'

    x_zoho_tags = fields.Many2one('zoho.tags', string='Tags')
    x_tags_option = fields.Many2one('zoho.tag.option', string='Tags Option', domain="[('tag_ids', '=', x_zoho_tags.tag_id)]")
    rules_id = fields.Many2one('hr.salary.rule')


class TagOptions(models.Model):
     _name = 'zoho.tag.option'

     name = fields.Char(string="tag option name")
     option_tag_id = fields.Char(string="tag option id")
     tag_ids = fields.Char(string="tag_id")

В модели zoho.tags у меня есть поле с именем tag_id, а в zoho.tag.option у меня есть tag_ids, и обе имеют одинаковые значения,

В модели zoho.tags.line у меня есть поле Many2one с именем x_zoho_tags, которое показывает список тегов, таких как: division, state, etc. и x_tags_option, который показывает параметры для каждого тега, такие как:

Тег (разделение) имеет параметры (A, B, C), и эти параметры имеют одинаковые tag_ids, сохраненные для тега (разделение)

Я хочу добавить домен к x_tags_option, чтобы отфильтровать x_tag_option, чтобы показывать только варианты с одинаковыми tag_id.

Поэтому, когда я выбираю division из x_zoho_tags, тогда x_tags_option должно показывать только A, B and C.

Я пытался добавить эту строку ниже, но она не работает

domain="[('tag_ids', '=', x_zoho_tags.tag_id)]

1 Ответ

0 голосов
/ 19 марта 2019

Я должен понять это. Вот как я это сделал:

В питоне:

  @api.onchange('x_zoho_tags')
  def onchange_tags(self):
      res = {}
      if self.x_zoho_tags:
         res['domain'] = {'x_tags_option': [('tag_ids', '=', self.x_zoho_tags.tag_id)]}
      return res

В XML:

 <field name="x_zoho_tags"/>
 <field name="x_tags_option" onchange="onchange_tags(x_zoho_tags)"/>
...