项目模块的委托继承问题-Odoo 13

问题描述

我继承了project.project模型以添加“项目类型”字段。

from odoo import models,fields,api

class Proyectos(models.Model):
     _name = 'girodapp.proyectos'
     _description = 'Proyectos potenciales de Girod'
     tipo_proyecto = fields.Selection([
        ('Global','Global'),('Barreras y Verticales','Barreras y Verticales'),('Pretiles','Pretiles'),])
     project.id = fields.Many2one(
        'project.project',delegate=True,ondelete='cascade',required=True)

但是在安装模块时出现以下错误

Error:
odoo Server Error

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/odoo/http.py",line 624,in _handle_exception
    return super(JsonRequest,self)._handle_exception(exception)
  File "/usr/lib/python3/dist-packages/odoo/http.py",line 310,in _handle_exception
    raise pycompat.reraise(type(exception),exception,sys.exc_info()[2])
  File "/usr/lib/python3/dist-packages/odoo/tools/pycompat.py",line 14,in reraise
    raise value
  File "/usr/lib/python3/dist-packages/odoo/http.py",line 669,in dispatch
    result = self._call_function(**self.params)
  File "/usr/lib/python3/dist-packages/odoo/http.py",line 350,in _call_function
    return checked_call(self.db,*args,**kwargs)
  File "/usr/lib/python3/dist-packages/odoo/service/model.py",line 94,in wrapper
    return f(dbname,**kwargs)
  File "/usr/lib/python3/dist-packages/odoo/http.py",line 339,in checked_call
    result = self.endpoint(*a,**kw)
  File "/usr/lib/python3/dist-packages/odoo/http.py",line 915,in __call__
    return self.method(*args,line 515,in response_wrap
    response = f(*args,**kw)
  File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/main.py",line 1326,in call_button
    action = self._call_kw(model,method,args,kwargs)
  File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/main.py",line 1314,in _call_kw
    return call_kw(request.env[model],kwargs)
  File "/usr/lib/python3/dist-packages/odoo/api.py",line 387,in call_kw
    result = _call_kw_multi(method,model,line 374,in _call_kw_multi
    result = method(recs,**kwargs)
  File "<decorator-gen-60>",line 2,in button_immediate_install
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py",line 72,in check_and_log
    return method(self,**kwargs)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py",line 463,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 573,in _button_immediate_function
    modules.registry.Registry.new(self._cr.dbname,update_module=True)
  File "/usr/lib/python3/dist-packages/odoo/modules/registry.py",line 86,in new
    odoo.modules.load_modules(registry._db,force_demo,status,update_module)
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py",line 423,in load_modules
    loaded_modules,update_module,models_to_check)
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py",line 315,in load_marked_modules
    perform_checks=perform_checks,models_to_check=models_to_check
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py",line 182,in load_module_graph
    load_openerp_module(package.name)
  File "/usr/lib/python3/dist-packages/odoo/modules/module.py",line 376,in load_openerp_module
    __import__('odoo.addons.' + module_name)
  File "/mnt/extra-addons/girodapp/__init__.py",in <module>
    from . import models
  File "/mnt/extra-addons/girodapp/models/__init__.py",line 1,in <module>
    from . import girodapp_proyectos
  File "/mnt/extra-addons/girodapp/models/girodapp_proyectos.py",line 3,in <module>
    class Proyectos(models.Model):
  File "/mnt/extra-addons/girodapp/models/girodapp_proyectos.py",line 15,in Proyectos
    required=True)
NameError: name 'project' is not defined

根据该消息,未定义名称项目,但是与res.partner一起使用的相同方法我有用。 我究竟做错了什么?请帮帮我!

解决方法

只需将其从project.id更改为project_id

第一个语法python将尝试从对象id中检索属性project,这就是他抱怨它的原因。

您正在定义一个Many2one字段,因此名称不能包含特殊字符。这是一个标识符,他必须遵循所有编程语言中的规则,例如不能以数字开头。等。