【零散技术】10分钟学会 Odoo Widget many2many_tags的使用与拓展

序言:时间是我们最宝贵的财富,珍惜手上的每个时分

1.基本使用

        widget =“many2many_tags”是我们常用的视图组件,使用后会badge形式展示数据,未使用widget则只显示 (x记录)

【零散技术】10分钟学会 Odoo Widget many2many_tags的使用与拓展_第1张图片

 2.自定义显示内容

        使用 many2many_tags后默认显示模型中的 _rec_name字段对应的数据

        如未定义_rec_name,默认显示 name字段数据

        如_rec_name 与name都未定义,则会显示 (模型名称,id)

【零散技术】10分钟学会 Odoo Widget many2many_tags的使用与拓展_第2张图片

        由于未做name定义,界面过于辣眼,且当前需求为:显示 检测内容与不良数。

        所以可以通过重写name_get方法,展示想要的数据

    def name_get(self):
        res = []
        for rec in self:
            res.append((rec.id, '%s:%s' % (rec.item_id.name, rec.qty)))
        return res


【零散技术】10分钟学会 Odoo Widget many2many_tags的使用与拓展_第3张图片

 3.自定义显示颜色

        我们成功展示了数据,但是默认的灰色无法突出显示信息,

        现在需要突出显示 检测不良数>0的数据,我们如何处理呢

        此刻 options属性派上用场了

  

        前置准备:

        1>模型增加字段 “颜色”

class RoQualityCheckItemDetail(models.Model):
    _name = 'ro.qc.item.detail'
    _description = '质检信息'
    '''
    '''
    color = fields.Integer('颜色')

        2>将颜色字段进行计算

    color = fields.Integer('颜色',compute='compute_color',store=True,default=10)
    @api.depends('qty')
    def compute_color(self):
        for detail in self:
            if detail.qty>0:
                color_index = 9
            else:
                color_index = 10
            detail.write({
                'color':color_index
            })

        注意:color 有11个值,0-11分别对应如下颜色

【零散技术】10分钟学会 Odoo Widget many2many_tags的使用与拓展_第4张图片

        我们的计算方法则是为了突出显示 检测不良数>0的数据,大于0红色,等于0为绿色

【零散技术】10分钟学会 Odoo Widget many2many_tags的使用与拓展_第5张图片

        3>视图字段 增加option

        这一步是必不可少的, 如果没有添加的话是不会出现颜色变化的

        通过以上操作后, 即可达到依据情况变色的效果。

odoo开发部署实施.

wx号: _ro_cd

你可能感兴趣的:(odoo,前端,后端,python)