Odoo14:指定创建人创建操作

💭场景:指定创建人张三在表单A中创建一条数据


入坑点:在value中传递create_uid的方式没有成功,create_uid并不是张三。

def create_purchase_quote(self, item):
        value_list = []
        goods_information_list = []
        for good_line in item.goods_information_ids:
            good_value = {
                'serial_number': good_line.serial_number,
                'gzy_material_id': good_line.gzy_material_id.id,
                ...
            }
            goods_information_list.append((0, 0, good_value))
        for line in item.enquiry_supplier_ids:
            value = {'create_uid': line.张三user_id,
                     'purchase_enquiry_id': item.id,
                     ...
                     }
            if goods_information_list:
                value.update(goods_information_ids = goods_information_list)
            value_list.append(value)
        self.env['purchase.quote'].create(value_list)

解决方法:使用 with_user() 方法

 def create_purchase_quote(self, item):
        goods_information_list = []
        for good_line in item.goods_information_ids:
            good_value = {
                'serial_number': good_line.serial_number,
                'gzy_material_id': good_line.gzy_material_id.id,
                ...
            }
            goods_information_list.append((0, 0, good_value))
        for line in item.enquiry_supplier_ids:
            value = {'create_uid': line.张三user_id,
                     'purchase_enquiry_id': item.id,
                     ...
                     }
            if goods_information_list:
                value.update(goods_information_ids = goods_information_list)
        	self.env['purchase.quote'].with_user(line.张三user_id).create(value)

内置方法:with_user

with_user(用户id) 返回附加到给定用户的此记录集的新版本,非超级用户模式,除非`user`是超级用户,超级用户始终处于超级用户模式。

源码如下

    def with_user(self, user):
        """ with_user(user)

        Return a new version of this recordset attached to the given user, in
        non-superuser mode, unless `user` is the superuser (by convention, the
        superuser is always in superuser mode.)
        """
        if not user:
            return self
        return self.with_env(self.env(user=user, su=False))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值