コンテンツへスキップ
メニュー
この質問にフラグが付けられました
2 返信
18753 ビュー

Hello,

I have Many2one field with domain function,

port_chargement_id = fields.Many2one('res.port', string='POL', domain=lambda self: self._get_port_chargement_domain())
def _get_port_chargement_domain(self):    
    domain = [('desservi', '=', True)]
    if self.sens_fret_id.id == 1:
        domain.append(('pays_id.code', 'not ilike', 'dz'))
    if self.sens_fret_id.id == 2:
        domain.append(('pays_id.code', 'ilike', 'dz'))
    return domain

From the function I tried to get the current item field with the self.sens_fret , but the self.xxxxx  doesn't work and it returns always False, i even tried  with self.name

アバター
破棄

Hey salah! if you want to do these kind of stuff in on_change method than have a look it will help you: http://learnopenerp.blogspot.com/2016/10/onchange-many2one-filed-in-odoo.html

著作者

Thanks! but in my case, the sens_fret_id field will be readonly in the next stage, so the port_chargement_id will always depend on the value selected previoulsly. so the onchange function will not be usefull.

最善の回答

Hi,

try this in an onchange function.

@api.onchange('sens_fret_id')
def onchange_sens_fret_id(self):
    domain = [('desservi', '=', True)]
    if self.sens_fret_id.id == 1:
        domain.append(('pays_id.code', 'not ilike', 'dz'))
    if self.sens_fret_id.id == 2:
        domain.append(('pays_id.code', 'ilike', 'dz'))
    return {'domain': {'port_chargement_id': domain}}

Thank you

アバター
破棄
著作者

Thanks! but in my case, the sens_fret_id field will be readonly in the next stage, so the port_chargement_id will always depend on the value selected previoulsly. so the onchange function will not be usefull.

最善の回答

I had solved the problem. Please see my blog: Odoo14, Pass variable from master to detail by context and using domain function

The article is posted on Facebook Odoo Developers.

アバター
破棄
関連投稿 返信 ビュー 活動
2
5月 24
7798
4
5月 20
73975
2
5月 24
9217
1
1月 22
11980
1
7月 20
16026