Odoo 10 - 在提交时以表单形式存储当前会话的用户 ID

Odoo 10 - store user id of current session in form on submission

Odoo 相对较新。试图建立一种关系,即 1 位用户发送 1 封电子邮件,但 1 位用户可以发送多封电子邮件。我在电子邮件 class 中创建了一个 Many2one 字段,如图所示

user_id = fields.Many2one('res.users', string='user id', default=lambda self: self.env.user)

当我从表单提交时,它总是存储“1”,这是管理员的 ID,即使我以另一个用户身份登录(John doe,id=6)也是如此。

为了检查关系是否良好,我刚刚在表单中显示了 user_id 字段,我看到下拉列表中填充了数据库中的所有用户,如下面的代码所示

<div class="hff hff_dropbox form-group" data-form-type="dropbox" data-field-id="4">
    <label class="control-label" for="user_id">User id</label>
    <select class="form-control" name="user_id">
        <option value="">Select Option</option>
        <option value="1">Administrator</option>
        <option value="6">John Doe</option>
    </select>
</div>

如果你在odoo后端uid,user是默认存储登录用户的orm字段。如果您需要从代码中获取它,请尝试

self.env.user.id or request.session.uid or self.env.context.get('uid')