python - 获取 TypeError : type() argument 1 must be string, 而不是 None

标签 python odoo

我在安装自定义 Odoo 模块时遇到错误。

这是我得到的完整回溯。当我单击模块看板 View 上的安装按钮时。

Traceback (most recent call last):
  File "/home/software/ws/bma8_dev/odoo/openerp/http.py", line 518, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/home/software/ws/bma8_dev/odoo/openerp/http.py", line 539, in dispatch
    result = self._call_function(**self.params)
  File "/home/software/ws/bma8_dev/odoo/openerp/http.py", line 295, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/home/software/ws/bma8_dev/odoo/openerp/service/model.py", line 113, in wrapper
    return f(dbname, *args, **kwargs)
  File "/home/software/ws/bma8_dev/odoo/openerp/http.py", line 292, in checked_call
    return self.endpoint(*a, **kw)
  File "/home/software/ws/bma8_dev/odoo/openerp/http.py", line 759, in __call__
    return self.method(*args, **kw)
  File "/home/software/ws/bma8_dev/odoo/openerp/http.py", line 388, in response_wrap
    response = f(*args, **kw)
  File "/home/software/ws/bma8_dev/odoo/openerp/addons/web/controllers/main.py", line 953, in call_button
    action = self._call_kw(model, method, args, {})
  File "/home/software/ws/bma8_dev/odoo/openerp/addons/web/controllers/main.py", line 941, in _call_kw
    return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)
  File "/home/software/ws/bma8_dev/odoo/openerp/api.py", line 237, in wrapper
    return old_api(self, *args, **kwargs)
  File "/home/software/ws/bma8_dev/odoo/openerp/addons/base/module/module.py", line 450, in button_immediate_install
    return self._button_immediate_function(cr, uid, ids, self.button_install, context=context)
  File "/home/software/ws/bma8_dev/odoo/openerp/api.py", line 237, in wrapper
    return old_api(self, *args, **kwargs)
  File "/home/software/ws/bma8_dev/odoo/openerp/addons/base/module/module.py", line 498, in _button_immediate_function
    registry = openerp.modules.registry.RegistryManager.new(cr.dbname, update_module=True)
  File "/home/software/ws/bma8_dev/odoo/openerp/modules/registry.py", line 346, in new
    openerp.modules.load_modules(registry._db, force_demo, status, update_module)
  File "/home/software/ws/bma8_dev/odoo/openerp/modules/loading.py", line 363, in load_modules
    loaded_modules, update_module)
  File "/home/software/ws/bma8_dev/odoo/openerp/modules/loading.py", line 263, in load_marked_modules
    loaded, processed = load_module_graph(cr, graph, progressdict, report=report, skip_modules=loaded_modules, perform_checks=perform_checks)
  File "/home/software/ws/bma8_dev/odoo/openerp/modules/loading.py", line 158, in load_module_graph
    models = registry.load(cr, package)
  File "/home/software/ws/bma8_dev/odoo/openerp/modules/registry.py", line 148, in load
    model = cls._build_model(self, cr)
  File "/home/software/ws/bma8_dev/odoo/openerp/models.py", line 659, in _build_model
    cls = type(cls._name, (cls,), attrs)
TypeError: type() argument 1 must be string, not None

谁能知道出了什么问题吗?

最佳答案

您错过了模型上所需的模块描述符。

尝试在您的模型类上使用_name_inherit

它将解决此类错误。

关于python - 获取 TypeError : type() argument 1 must be string, 而不是 None,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30233336/

相关文章:

javascript - 如何使用ajax函数发送表单而不刷新页面,我错过了什么?我必须为此使用rest-framework吗?

python - 如何处理 "Incompatible return value type (got overloaded function)"问题

python - Werkzeug 不包含 wsgi 模块

python - 获取 openerp 中事件过滤器下上下文中的所有 ID

python-3.x - Odoo 11 中 inverse_name 的意外行为

python - 应用于方法的可调用对象装饰器不会在输入中获取自参数

python - 将 ASCII 字符转换为 "<Uxxx>"unicode 符号的脚本

odoo - 如何在 Odoo13 中获取交易引用

model-view-controller - ir.ui.view 中 iframe 的 Odoo 8 src 变量

python - 将 xldate 转换为 python 日期时间