Welcome!

1. 在这个论坛里的所有问题都是会被跟踪的,要么是被解答,要么是提供别的解决方案。

2. 所以,提问的时候首先要保证问题描述得当与详尽,上下文提供清楚,我才好回答。

3. 对于发问不符合要求,我会在首次发问时进行联系,后续发问不符合要求则忽略回答。

0

Odoo ValueError: too many values to unpack

Administrator
2017/10/10 下午2:05 390 次查看

Odoo10报错信息如下:

File "/opt/odoo-10.0/odoo/addons/base/ir/ir_ui_view.py", line 864, in postprocess_and_fields

    fields = Model.fields_get(None)
  File "/opt/odoo-10.0/odoo/models.py", line 2909, in fields_get
    description = field.get_description(self.env)
  File "/opt/odoo-10.0/odoo/fields.py", line 720, in get_description
    value = value(env)
  File "/opt/odoo-10.0/odoo/fields.py", line 1717, in _description_selection
    return [(value, translate(label) if label else label) for value, label in selection]
ValueError: too many values to unpack





1
TonyMa
On 2017/10/10 下午2:18

Odoo服务端报错的log阅读方式是自下而上,所以截图底部的应该足够。

首先,ValueError,通过google搜索发现这是python比较底层的错误,看来应该是Python代码写错了,当然了也不排除视图中的运算(几率很少)。

第二,倒数第二行的label in selection是很关键的,准确定位到是selection字段的定义出了问题。至于是哪个字段,有两种方式:

2.1 追溯。就是找肇事者。这种方法技术难度低,有可能很快找到肇事者。

2.2 调试。这是求人不如求己的方法。当然需要你掌握一点点代码调试技巧,即知道在哪里放logger。像这个错误,File "/opt/odoo-10.0/odoo/fields.py", line 1717, in _description_selection这一行就很关键。

def _description_selection(self, env):
        """ return the selection list (pairs (value, label)); labels are
            translated according to context language
        """
        selection = self.selection
        if isinstance(selection, basestring):
            return getattr(env[self.model_name], selection)()
        if callable(selection):
            return selection(env[self.model_name])

        # translate selection labels
        if env.lang:
            name = "%s,%s" % (self.model_name, self.name)
            translate = partial(
                env['ir.translation']._get_source, name, 'selection', env.lang)
            return [(value, translate(label) if label else label) for value, label in selection]
        else:
            return selection

在name="%s,........"这一行下面加一句:

_logger.info(name)

当然,注意该文件本身是否已经声明了_logger,然后别忘了重启odoo。



  • Flag

你的回复

请尽量给予实质性答复。 如果你想在问题或答案发表评论, 请 使用注释工具。 请记住,你可以随时修改你的答案 无需回答同样的问题两次。另外,请不要忘了投票 它确实有助于选择最佳的问题和答案!

随时了解

关于这个社区

在这里,你可以对Odoo的任何内容发起问题或讨论,你的问题或讨论只要符合我们对提问或主题的要求,那么它肯定会得到解决,要么是答案,要么是替代方案。 阅读指南

问题工具

1 关注者

统计数据

发帖时间: 2017/10/10 下午2:05
查看次数: 390
最后更新: 2017/10/10 下午2:20