Ссылка на другое поле в доменной функции (Odoo12) - PullRequest
0 голосов
/ 10 июля 2019

Я хочу ограничить поиск аккаунта (домен) на основе значения, введенного в префиксе GL (на самом деле я буду использовать некоторые символы подстановки и некоторую другую логику, которую мне удобно добавить позже), проблема в том, что я получаюлогическое значение True или False, возвращаемое self.x_poLineGLprefix, а не значением в поле.Как получить фактическое значение данных x_poLineGLprefix?

class QuickPOLine(models.Model): 
_name = 'purchase.order.line' 
_inherit = 'purchase.order.line' 

x_poLineGLprefix = fields.Char(string='GL Prefix') 
x_poLineGLaccount = fields.Many2one( 
'account.account', string="Line Item Expense Account", 
domain=lambda self: [('code', '=', self.x_poLineGLprefix)])

Ответы [ 2 ]

3 голосов
/ 10 июля 2019

Попробуйте это

@api.onchange('x_poLineGLprefix')
def onchange_x_poLineGLprefix(self):

    if self.x_poLineGLprefix:
         return {'domain': {
            'x_poLineGLaccount': [('code', '=', self.x_poLineGLprefix)]
        }}
2 голосов
/ 10 июля 2019

Вы можете добавить динамический домен для достижения этого на основе любого поля. В функции @ api.onchange () вы можете вернуть домен для many2one. Чтобы добавить динамический домен, вы можете обратиться по этой ссылке . Если вы используете оба поля many2one, обратитесь к этой ссылке .

...