psycopg2.ProgrammingError:无法在 odoo 14 中调整类型“NewId”

Posted

技术标签:

【中文标题】psycopg2.ProgrammingError:无法在 odoo 14 中调整类型“NewId”【英文标题】:psycopg2.ProgrammingError: can't adapt type 'NewId' in odoo 14 【发布时间】:2021-03-29 03:30:52 【问题描述】:

在 one2many 字段中创建新记录时遇到上述错误。

代码如下:

def _compute_timesheet_hour(self):
    for val in self:
        self._cr.execute('''SELECT project_id, employee_id, SUM(unit_amount) FROM account_analytic_line 
        where project_id = %(project_id)s and employee_id = %(employee_id)s
        GROUP BY project_id, employee_id''',  'project_id': val.project_id.id, 'employee_id': val.employee_id.id,)
        res = self._cr.fetchone()
        if res and res[2]:
            val.timesheet_hour = res[2]
        else:
            val.timesheet_hour = 0.0

【问题讨论】:

这需要更多信息。在这种情况下,self 是什么? project.idemployee_id 是如何定义的? 【参考方案1】:

在创建时record.id 的值在数据库中不存在。为具有计算字段的模型创建记录时,record-set 的记录将仅在内存中。那时记录的 id 将是 odoo.models.NewId 类型的虚拟 id。

【讨论】:

以上是关于psycopg2.ProgrammingError:无法在 odoo 14 中调整类型“NewId”的主要内容,如果未能解决你的问题,请参考以下文章

psycopg2.ProgrammingError:“st”或附近的语法错误\r,

psycopg2.ProgrammingError:列 cons.consrc 不存在

psycopg2.ProgrammingError:无法在 odoo 14 中调整类型“NewId”

Python支持SQL数据库返回psycopg2.ProgrammingError:在尝试删除表中的数据时,关系不存在错误?

psycopg2转义字符问题

psycopg2 将参数传递给 SQL 编程错误