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

15 篇文章 0 订阅
9 篇文章 1 订阅

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

目录

1.基本使用

 2.自定义显示内容

 3.自定义显示颜色


1.基本使用

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

 2.自定义显示内容

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

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

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

        由于未做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


 3.自定义显示颜色

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

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

        此刻 options属性派上用场了

  <field name="item_detail_ids" widget="many2many_tags" options="{'color_field': 'color'}"/>

        前置准备:

        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分别对应如下颜色

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

        3>视图字段 增加option

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

<field name="item_detail_ids" widget="many2many_tags"
                                           options="{'color_field': 'color'}"/>

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

odoo开发部署实施.

wx号: _ro_cd

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值