python-3.x - odoo 12中的Keyerror'job.cost.sheet'
问题描述
我正在尝试在 Odoo中开发一个自定义模块。当我升级它时,我在日志中收到此错误。
Traceback(最近一次调用最后一次):文件“C:\Program Files (x86)\Odoo 12.0\server\odoo\api.py”,第 1049 行,在 get value = self._data[key][field][record. _ids[0]] 密钥错误:434
在处理上述异常的过程中,又出现了一个异常:
回溯(最后一次调用):文件“C:\Program Files (x86)\Odoo 12.0\server\odoo\fields.py”,第 989 行,在get value = record.env.cache.get(record, self)文件“C:\Program Files (x86)\Odoo 12.0\server\odoo\api.py”,第 1051 行,在 get raise CacheMiss(record, field) odoo.exceptions.CacheMiss: ('ir.actions.act_window(434 ,).search_view', 无)
在处理上述异常的过程中,又出现了一个异常:
Traceback(最近一次调用最后一次):文件“C:\Program Files (x86)\Odoo 12.0\server\odoo\http.py”,第 656 行,在 _handle_exception return super(JsonRequest, self)._handle_exception(exception) File 中C:\Program Files (x86)\Odoo 12.0\server\odoo\http.py",第 314 行,在 _handle_exception raise pycompat.reraise(type(exception), exception, sys.exc_info()[2]) 文件“C :\Program Files (x86)\Odoo 12.0\server\odoo\tools\pycompat.py",第 87 行,在 reraise raise 值文件 "C:\Program Files (x86)\Odoo 12.0\server\odoo\http.py ”,第 698 行,在调度结果中 = self._call_function(**self.params) 文件“C:\Program Files (x86)\Odoo 12.0\server\odoo\http.py”,第 346 行,在 _call_function return checked_call( self.db, *args, **kwargs) 文件 "C:\Program Files (x86)\Odoo 12.0\server\odoo\service\model.py”,第 97 行,在包装器中返回 f(dbname, *args, **kwargs) 文件“C:\Program Files (x86)\Odoo 12.0\server\odoo\http. py”,第 339 行,在 checked_call 结果 = self.endpoint(*a, **kw) 文件“C:\Program Files (x86)\Odoo 12.0\server\odoo\http.py”,第 941 行,在在getitem中 返回 self._fields[key]。得到(self, type(self)) File "C:\Program Files (x86)\Odoo 12.0\server\odoo\fields.py", line 993, in get self.determine_value(record) File "C:\Program Files ( x86)\Odoo 12.0\server\odoo\fields.py",第 1106 行,确定值 self.compute_value(recs) 文件“C:\Program Files (x86)\Odoo 12.0\server\odoo\fields.py”,行1060,在compute_value self._compute_value(records)文件“C:\Program Files (x86)\Odoo 12.0\server\odoo\fields.py”中,第1051行,在_compute_value getattr(records, self.compute)()文件中” c:\program files (x86)\odoo 12.0\server\odoo\addons\base\models\ir_actions.py",第 170 行,在 _compute_search_view fvg = self.env[act.res_model].fields_view_get(act.search_view_id.id , '搜索') 文件 "C:\Program Files (x86)\Odoo 12.0\server\odoo\api.py",第 831 行,在getitem return self.registry[model_name]._browse((), self) File "C:\Program Files (x86)\Odoo 12.0\server\odoo\modules\registry.py",第 176 行,在getitem return self.models [model_name] KeyError:'job.cost.sheet'
这是我的代码
class JobCostSheet(models.Model):
_name = 'job.cost.sheet'
sequence = fields.Char(string='Sequence', readonly=True, copy=False, index=True,default=lambda self:self.env['ir.sequence'].get('job.cost.sheet'))
project_id = fields.Many2one('project.project',string='Project')
analytic_ids = fields.Many2one('account.analytic.account',string="Analytic Account")
job_order_id = fields.Many2one('job.order','Job Order')
job_issue_customer_id = fields.Many2one('res.partner', 'Job Issue Customer')
create_date = fields.Datetime(string="Create Date",default=datetime.now())
close_date = fields.Datetime(string="Close Date",default=datetime.now())
create_by_id = fields.Many2one('res.users','Created By')
material_job_cost_line_ids = fields.One2many('job.cost.line','material_job_cost_sheet_id','Material Job Cost Line')
labour_job_cost_line_ids = fields.One2many('job.cost.line','labour_job_cost_sheet_id','Labout Job Cost Line')
overhead_job_cost_line_ids = fields.One2many('job.cost.line','overhead_job_cost_sheet_id','Overhead Job Cost Line')
tools_job_cost_line_ids = fields.One2many('job.cost.line','tools_job_cost_sheet_id','Tools Job Cost Line')
machines_job_cost_line_ids = fields.One2many('job.cost.line','machines_job_cost_sheet_id','Tools Job Cost Line')
total_material_cost = fields.Float(compute='_compute_total_material_cost',string="Total Material Cost",default=0.0)
total_labour_cost = fields.Float(compute='_compute_total_labour_cost',string='Total Labour Cost',default=0.0)
total_overhead_cost = fields.Float(compute='_compute_total_overhead_cost',string='Total Overhead Cost',default=0.0)
total_cost = fields.Float(compute='_compute_total_cost',string='Total Cost',default=0.0)
job_cost_description = fields.Text('Job Cost Description')
currency_id = fields.Many2one("res.currency", compute='get_currency_id', string="Currency")
stage = fields.Selection([('draft','Draft'),('confirm','Confirmed'),('approve','Approved'),('done','Done')],'Stage',
copy=False,default='draft')
purchase_order_line_count = fields.Integer('Purchase Order Line', compute='_get_purchase_order_line_count')
invoice_line_count = fields.Integer('Invoice Order Line', compute='_get_invoice_line_count')
#is_done_stage = fields.Boolean(string='Is Done Stage')
#is_confirm_stage = fields.Boolean(string='Is Confirm Stage',default=False)
#is_approve_stage = fields.Boolean(string='Is Approve Stage',default=False)
company_id = fields.Many2one('res.company',string="Company")
sale_reference = fields.Text(string="Description Sale Reference")
解决方案
定义'job.cost.sheet'
为代码ir.sequence
并用作self.env['ir.sequence'].next_by_code('job.cost.sheet')
推荐阅读
- python - Django:计数相关模型,其中相关注释具有特定值并将计数存储在注释中(或简单地说:计数子查询)
- excel - 如何在excel中重新格式化这个日期
- typescript - 添加和休息一天到日期字符串
- python-3.x - 向 serializers.ModelSerializer 添加一个额外的字段
- python-3.x - 计算文件中的字符数
- azure - 缺少使用 PySpark 将数据引入 Azure 数据资源管理器的库
- c# - 我无法在 C# 上编译 GTA V 脚本。找不到名称空间播放器的类型
- firebase - Firebase Stream 错误,在 database.dart 文件中无法识别自定义类rideDetails.dart
- python - PySide 代码产生一个空白窗口。在保持课程的同时有任何解决方案吗?
- reactjs - 按钮的 OnClick 平滑滚动 + 触发功能