odoo 预置方法 default_get

2021-02-07  本文已影响0人  边境_1c2d

odoo models.Model 中 预置了很多的基本字段,比如 create_date, write_date 等等,odoo的 筛选和分组会默认使用这些字段,并且有时候可能是英文的,那么我们要如何处理这些字段呢?(如下图)

image.png

我们可以做在odoo预置的方法 fields_get中进行处理,fields_get方法在每次进入tree视图的时候回执行,实现格式如下:

    @api.model
    def fields_get(self, allfields=None, attributes=None):
        res = super(OkrManageLine, self).fields_get(allfields, attributes)
        for key, value in res.items():
            if key == 'create_date':
                res[key]['string'] = '创建时间'
            elif key == 'write_date': 
                res[key]['string'] = '最后更新时间'
        return res

调用父类fields_get的返回值是议程字典,我们可以通过判断字段的名称对其在筛选和分组中的显示标签进行调整

在筛选和分组中对一些字段进行隐藏实现格式如下:

    @api.model
    def fields_get(self, allfields=None, attributes=None):
        # 过滤掉筛选中不显示项
        res = super(SupplierInvoiceRecordPivot, self).fields_get(allfields, attributes)
        filter_field = ['create_uid', 'write_date', 'create_date', 'write_uid', 'uid']
        for key, value in res.items():
            if key in filter_field:
                res[key]['searchable'] = False
                res[key]['sortable'] = False
        return res
上一篇 下一篇

猜你喜欢

热点阅读