ValueError:需要解包的值太多(预计为 2)[Odoo]

问题描述 投票:0回答:1

我正在尝试制作自定义 Odoo 模块,但收到此错误:

RPC_ERROR
Odoo Server Error
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/odoo/http.py", line 1584, in \_serve_db
return service_model.retrying(self.\_serve_ir_http, self.env)
File "/usr/lib/python3/dist-packages/odoo/service/model.py", line 133, in retrying
result = func()
File "/usr/lib/python3/dist-packages/odoo/http.py", line 1611, in \_serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "/usr/lib/python3/dist-packages/odoo/http.py", line 1815, in dispatch
result = self.request.registry\['ir.http'\].\_dispatch(endpoint)
File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_http.py", line 154, in \_dispatch
result = endpoint(\*\*request.params)
File "/usr/lib/python3/dist-packages/odoo/http.py", line 697, in route_wrapper
result = endpoint(self, \*args, \*\*params_ok)
File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/dataset.py", line 46, in call_button
action = self.\_call_kw(model, method, args, kwargs)
File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/dataset.py", line 33, in \_call_kw
return call_kw(request.env\[model\], method, args, kwargs)
File "/usr/lib/python3/dist-packages/odoo/api.py", line 461, in call_kw
result = \_call_kw_multi(method, model, args, kwargs)
File "/usr/lib/python3/dist-packages/odoo/api.py", line 448, in \_call_kw_multi
result = method(recs, \*args, \*\*kwargs)
File "\<decorator-gen-74\>", line 2, in button_immediate_install
File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py", line 74, in check_and_log
return method(self, \*args, \*\*kwargs)
File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py", line 468, in button_immediate_install
return self.\_button_immediate_function(type(self).button_install)
File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py", line 592, in \_button_immediate_function
registry = modules.registry.Registry.new(self.\_cr.dbname, update_module=True)
File "\<decorator-gen-14\>", line 2, in new
File "/usr/lib/python3/dist-packages/odoo/tools/func.py", line 87, in locked
return func(inst, \*args, \*\*kwargs)
File "/usr/lib/python3/dist-packages/odoo/modules/registry.py", line 90, in new
odoo.modules.load_modules(registry, force_demo, status, update_module)
File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 488, in load_modules
processed_modules += load_marked_modules(cr, graph,
File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 372, in load_marked_modules
loaded, processed = load_module_graph(
File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 208, in load_module_graph
registry.init_models(cr, model_names, {'module': package.name}, new_install)
File "/usr/lib/python3/dist-packages/odoo/modules/registry.py", line 531, in init_models
env\['ir.model.fields.selection'\].\_reflect_selections(model_names)
File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_model.py", line 1287, in \_reflect_selections
expected = {
File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_model.py", line 1291, in \<dictcomp\>
for index, (value, label) in enumerate(field.selection)
ValueError: too many values to unpack (expected 2)

The above server error caused the following client error:
RPC_ERROR: Odoo Server Error
RPCError@http://localhost:8069/web/assets/192-39f72eb/web.assets_backend.min.js:981:274
makeErrorFromResponse@http://localhost:8069/web/assets/192-39f72eb/web.assets_backend.min.js:985:163
jsonrpc/promise\</\<@http://localhost:8069/web/assets/192-39f72eb/web.assets_backend.min.js:993:34

我的 models.py 看起来像这样:

# -*- coding: utf-8 -*-

from odoo import models, fields, api

class restaurante(models.Model):
    _name = 'trabajo_modulo.restaurante'
    _description = 'Define el restaurante'

    nombre = fields.Char('Nombre', required=True)
    nMesas = fields.Integer(string='Número de mesas', required=True)

class mesa(models.Model):
    _name = 'trabajo_modulo.mesa'
    _description = 'Define la mesa'

    num = fields.Integer(string='Número', required = True)
    capacidad = fields.Integer(string='Capacidad', default=4)

class empleado(models.Model):
    _name = 'trabajo_modulo.empleado'
    _description = 'Permite definir las características de un empleado'

    nombre = fields.Char('Nombre', required=True)
    nif = fields.Char('NIF', required=True)
    puesto = fields.Selection(string='Puesto', selection=[('w','Camarero'), ('c','Cocinero'), ('p', 'Repostero')], default='w')
    sueldo = fields.Float(string='Sueldo')
    fecha_incorporacion = fields.Date(string='Fecha de incorporación')
    experiencia = fields.Integer('Experiencia', compute='_get_antiguedad')

    @api.depends('fecha_incorporacion')
    def _get_antiguedad(self):
        for empleado in self:
            empleado.experiencia = 0

一开始我以为是因为

puesto
参数,但是注释掉之后一直弹出错误。

python odoo
1个回答
0
投票

原来我没有重新启动服务器。这就成功了。

© www.soinside.com 2019 - 2024. All rights reserved.