odoo Reference 选择model 然后选择record

class ActivityRules(models.Model):
    _description = '活动规则'
    _name = 'activity.rules'
    # 值越小优先级越高
    rank = fields.Integer(string='折扣优先级')
    rule = fields.Reference(selection='_select_rules')

    @api.model
    def _select_rules(self):
        records = self.env['ir.model'].search([
            ('model', 'like', 'activity.rule.%')
        ])
        return [(record.model, record.name) for record in records]


class ActivityRuleReduce(models.Model):
    _description = '满减规则'
    _name = 'activity.rule.reduce'

    satisfy_money = fields.Float(string='满足金额')
    reduce_money = fields.Float(string='减少金额')
    name = fields.Char(string='满减名', readonly=True, compute='_get_name', store=True)

    @api.depends('reduce_money', 'satisfy_money')
    def _get_name(self):
        for record in self:
            if record.satisfy_money and record.reduce_money:
                record.name = '满{}元 减{}元'.format(record.satisfy_money, record.reduce_money)

posted @   twfb  阅读(928)  评论(0编辑  收藏  举报
编辑推荐:
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
阅读排行:
· 如何给本地部署的DeepSeek投喂数据,让他更懂你
· 超详细,DeepSeek 接入PyCharm实现AI编程!(支持本地部署DeepSeek及官方Dee
· 用 DeepSeek 给对象做个网站,她一定感动坏了
· .NET 8.0 + Linux 香橙派,实现高效的 IoT 数据采集与控制解决方案
· .NET中 泛型 + 依赖注入 的实现与应用
点击右上角即可分享
微信分享提示