【问题标题】:Set email as foreign key in Odoo 10在 Odoo 10 中将电子邮件设置为外键
【发布时间】:2018-04-29 08:43:58
【问题描述】:

我有一个名为Joked 的模型,我希望将当前用户的电子邮件存储为外键。在我的模型中,我定义了我的 M2O 关系,如下所示:

last_accessed_by = fields.Many2one('res.users', string='Complainant id', default=lambda self: self.env.uid, required = True)

但是,它需要用户的 id 而不是电子邮件。

【问题讨论】:

  • 您明确告诉它存储res.users 对象并将其默认为用户ID。您能否更好地解释您想要什么以及可能的原因?这似乎是一个奇怪的用例。通常,您会存储用户 ID 并显示您需要的任何相关字段。
  • 这是因为我需要向用户发送电子邮件。并且使用电子邮件的自动化操作,它只是使用${object.last_accessed_by} 从数据库中获取用户的电子邮件以发送给该用户。如果我使用用户 ID 作为外键,我很难获取用户的电子邮件。当我使用用户 ID 作为外键@travisw 时,您知道如何获取用户的电子邮件吗?

标签: foreign-keys one-to-many models odoo many-to-one


【解决方案1】:

在电子邮件模板中,您可以继续使用点符号来访问子对象的属性。

在您的情况下,当您获得 object.last_accessed_by 时,您将获得一个 res.users 对象。您可以继续访问属性,直到获得所需的内容。

此外,Odoo 中的所有模型都有一些“内置”字段。其中之一是`write_uid,它存储用户上次修改记录的内容。

我建议使用它而不是您的 last_accessed_by 字段,因为它们似乎是相同的。你可能会得到这样的结果:

object.write_uid.partner_id.email

【讨论】:

    猜你喜欢
    • 2021-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多