odoo 动态创建字段

66 篇文章 4 订阅
23 篇文章 0 订阅

有这样的一个需求,在test表里,有个字段直接关联模型,但是在test表里,选择的一个模型就要创建一个字段来对应此模型,因为在odoo 中,模型数量太多,无法直接创建字段来使用,
故使用动态的创建字段。
类似:
选择 res.users生成字段 x_res_users_id
选择 account.move 生成字段 x_account_move_id
类似生成这种字段,如果存在则不创建

    def dynamic_field(self, dimension_ids):
        """ 动态创建字段
        self._name: 传过来的模型(要在那个模型里面创建字段)
        fields_name :生成字段,类似 x_res_users_id
       """
        for rec in dimension_ids:
            model = self.env['ir.model']._get(self._name)
            fields_name = 'x_%s_id' % (rec.dimension_id.model_id.model.replace('.', '_'))
            if fields_name not in self:
                new_field = self.env['ir.model.fields'].create({
                    'model_id': model.id,  
                    'name': fields_name, 
                    'field_description': rec.dimension_id.model_id.name,   
                    'ttype': 'many2one',
                    'relation': rec.dimension_id.model_id.model,
                })

#model_id 在此模型创建字段
#name 字段名称
#field_description 字段描述
#ttype 字段类型
#relation ttype 关联的模型,
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

隔壁小红馆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值