首页 > 解决方案 > AttributeError: 'list' 对象没有属性 'get' odoo

问题描述

我有一个模型,其中包含:名称,组我从第 1 组到第 9 组然后在另一个模型中我从模型一创建 many2one:

 request_l = fields.Many2one('model.one',
                                         string='Model Name',
                                    
                                         required=True,
                                         store=True)

然后我创建函数来根据 request_l 的选择填充选择

        @api.model
        @api.onchange('request_l')
        def _populate_choice(self):
            choices = [
            ]
            if self.requst_l.group == 'g1':
                    choices += [('user', 'User'), ('manager', 'Manager')]
            return choices

        type_g = fields.Selection(string='Type', selection=_populate_choice, default='', store=True, )

但它在这一行显示错误:

如果 self.requst_l.group == 'g1':

if res.get('value'):
AttributeError: 'list' object has no attribute 'get'

标签: pythonodooodoo-12

解决方案


res变量是一个list。由于list它没有get内置方法。您可以使用整数下标访问其内容:

print(str(res[0]))

您正在尝试访问其数据,就好像它是一个dict. 但事实并非如此。如果您有 IDE 和 DEBUGGER,则可以检查resIDE 中的内容。


推荐阅读