【问题标题】:Get Current User when creating record . Odoo 14创建记录时获取当前用户。奥多 14
【发布时间】:2021-08-31 10:53:06
【问题描述】:

我在销售点有一个与 res.users 的字段 many2one 关系,如下所示:

  user_id = fields.Many2one(
        comodel_name='res.users', string='Responsible',
        help="Person who uses the cash register. It can be a reliever, a student or an interim employee.",
        default=lambda self: self.env.uid,
        states={'done': [('readonly', True)], 'invoiced': [('readonly', True)]},
    )

<field string="User" name="user_id"/>

我想将它设置为“必填”和空字段,但是在保存记录时,如果“user_id”的值为空,则获取当前用户。 我尝试使用此代码,但所需的值被阻塞:

@api.model
    def _default_user_id(self):
        if not self.user_id:
            self.user_id = self.env.uid
        else:
            self.user_id = False


    user_id = fields.Many2one(
        comodel_name='res.users',
        required=True,
        help="Person who uses the cash register. It can be a reliever, a student or an interim employee.",
        default=_default_user_id,
        states={'done': [('readonly', True)], 'invoiced': [('readonly', True)]},
    )

我该怎么做? 谢谢。

【问题讨论】:

    标签: javascript python xml odoo


    【解决方案1】:

    更改您的默认代码

    来自

    default=lambda self: self.env.uid,

    default=lambda self: self.env.user,

    EDIT-1

    在这种情况下,我们需要重写create() 方法,而不是在默认函数中编写逻辑。使用以下代码,它会在创建记录时检查user_id字段,如果记录没有user_id,它将设置当前登录用户。

    @api.model
    def create(self, vals):
        if "user_id" not in vals:
            vals.update({"user_id": self.env.user})
        record = super().create(vals)
        return record
    

    EDIT-2

    在这种情况下,我们需要写下默认函数。

    def _default_user_id(self):
        if not self.user_id:
            return self.env.user
        return False
    

    【讨论】:

    • 我的问题是关于添加required = True,默认取值为空保存记录时,如果user_id为空,则获取当前的user_id
    • 我通过添加实际代码@Bhavesh Odedra 更新了帖子
    • 该字段可以是必需的吗? ,因为总是阻止必填字段的消息。
    • @K.ju 试试Edit-2 解决方案。
    • 这种情况下user_id的值默认获取当前用户,我需要默认获取空值,@Bhavesh Odedra
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-14
    • 2012-08-24
    相关资源
    最近更新 更多