我对hr.employee.public型号有问题.如果我try 添加新字段Char、Buttons、Many 2one等,我没有任何问题.

然而,如果我try 插入这样的二进制字段employee_signature = fields.Binary(string='Employee signature', attachment=True, store=True),我总是会得到以下错误:

psycopg2.errors.UndefinedColumn: column emp.employee_signature does not exist
LINE 3: ...l,emp.priv_email,emp.employee_file_name_signature,emp.employ...

我哪里错了?可能是什么问题?

推荐答案

如果您继承hr.employee.public来添加stored field(而不是x2many个字段),您应该会看到相同的错误消息,因为init function试图从hr.employee获取字段

您不需要将store属性设置为True,因为这是默认值(如果将store设置为False,则可能无法保存附件).

attachment属性设置为True(默认值)时,Odoo会设置column type of the field to Noneignore updating the database schema

要解决此问题,您可以使用与扩展Binary字段image_1920字段相同的逻辑

100

class HrEmployee(models.Model):
    _inherit = 'hr.employee'

    employee_signature = fields.Binary(string='Employee signaturez', attachment=False)
    

class HREmployeePublic(models.Model):
    _inherit = "hr.employee.public"
        
    employee_signature = fields.Binary(compute="_compute_employee_signature", compute_sudo=True)
    
    def _compute_employee_signature(self):
        for employee in self:
            employee_id = self.sudo().env['hr.employee'].browse(employee.id)
            employee.employee_signature = employee_id.employee_signature

有关更多详细信息,请判断 [IMP] hr: Introduce the public employee profile 提交

Python相关问答推荐

Image Font生成带有条形码Code 128的条形码时出现枕头错误OSErsor:无法打开资源

返回nxon矩阵的diag元素,而不使用for循环

使用plotnine和Python构建地块

类型错误:输入类型不支持ufuncisnan-在执行Mann-Whitney U测试时[SOLVED]

使用miniconda创建环境的问题

如何在虚拟Python环境中运行Python程序?

如何使用pytest来查看Python中是否存在class attribution属性?

Django REST Framework:无法正确地将值注释到多对多模型,不断得到错误字段名称字段对模型无效'<><>

Python+线程\TrocessPoolExecutor

Odoo 16使用NTFS使字段只读

Pandas—在数据透视表中占总数的百分比

如果满足某些条件,则用另一个数据帧列中的值填充空数据帧或数组

如何使用Pandas DataFrame按日期和项目汇总计数作为列标题

如何指定列数据类型

让函数调用方程

在不同的帧B中判断帧A中的子字符串,每个帧的大小不同

Numpyro AR(1)均值切换模型抽样不一致性

在Python中从嵌套的for循环中获取插值

Pandas—堆栈多索引头,但不包括第一列

无法在盐流道中获得柱子