【问题标题】:Current date in email template openerp?电子邮件模板 openerp 中的当前日期?
【发布时间】:2014-05-28 12:51:56
【问题描述】:

如何在电子邮件模板中添加当前日期,以便在邮件中显示当前日期?另外我们如何更改要显示的日期格式?

【问题讨论】:

  • 你说的是哪个邮件模板?
  • 关于 openerp 中的电子邮件模板
  • 你能解决这个问题吗?

标签: xml openerp openerp-7 openerp-8


【解决方案1】:

email_templates 使用“jinja”模板引擎。对于像我们这样的懒人来说,坏消息是jinja 不支持内联python。您只能访问在渲染时传递给模板的变量。

其中一个变量是object,表示您附加到模板的对象,比如说res_partner。您可以尝试扩展res_partner 并添加一个计算当前日期的字段。像这样的:

from openerp.osv import fields, Model

class res_partner(osv.Model):
    """Inherit res.partner to add a generic field that can be used
       to in email templates."""
    _inherit = 'res.partner'

    def _get_now(self, cr, uid, ids, field_name, arg, context):
        from datetime import datetime
        return datetime.now()

    _columns = {
        'current_date_time': fields.function(_get_now, type="char",
                                             method=True, store=False)
    }

res_partner()

现在您应该可以在模板中添加以下内容:

${object.current_date_time}

我没有测试它。如果您尝试一下,请告诉我它是否有效。

【讨论】:

  • 嗨@Andrei!可能来不及让你知道结果,但是我试了一下,通过界面创建模板时,字段 current_date_time 不可用(我猜这是因为它没有存储在数据库中)。我试图直接写变量,当我发送电子邮件时就像我什么都没写一样。
【解决方案2】:

在 OpenERP/Odoo 电子邮件模板中,

您可以添加 javascript 来计算您当前的日期。

<script language="javascript">
   var today = new Date();
   document.getElementById('time').innerHTML=today;
 </script>

并通过使用调用此值 &lt;p id="time"&gt;&lt;/p&gt;

注意:我从另一个问题中获得了此信息。 Link here

【讨论】:

    猜你喜欢
    • 2013-08-12
    • 2013-01-19
    • 1970-01-01
    • 2012-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    • 2021-06-22
    相关资源
    最近更新 更多