如何在我的 Sendgrid 交易模板中包含 Jinja2 模板

How to include Jinja2 templating in my Sendgrid Transactional Template

有没有办法在 Sendgrid 模板中包含 jinja2 模板? 我正在尝试在 Sendgrid 模板中使用 {% for %}{% endfor %},但它似乎不起作用。虽然邮件发送成功,但打开后却是空的

HTML代码(placeorder.html):

  <body>

  <h3>From: {{name}}</h3>
  <h3>Email: {{emailFrom}}</h3>



    <table id="customers">
        <tr>
            <th>Product</th>
            <th>Quantity</th>
            <th>Sub Total</th>
        </tr>
        {% for order_item in order.items.all %}
        <tr>
            <td>{{ order_item.item.title}}</td>
            <td>{{ order_item.quantity }}</td>
            <td>&#8358;{{ order_item.get_final_price }}</td>
        </tr>
        {% endfor %}
        <p>
            <span>Total &#8358;</span>
            <strong>{{ order.get_total }}</strong>
        </p>

    </table>

</body>

Views.py(Django)

     def placeorder(request):
         form = orderform(request.POST)
         try:
            order = Order.objects.get(user=request.user, ordered=False)
            if form.is_valid():
               order = Order.objects.get(user=request.user, ordered=False)
               name = form.cleaned_data['name']
               emailFrom = form.cleaned_data['email']
               emailTo = settings.DEFAULT_FROM_EMAIL

               message = Mail(
                  from_email=emailFrom,
                  to_emails= emailTo ,
                  subject='subject',
                  html_content= settings.BASE_DIR + "/templates/placeorder.html")

               message.dynamic_template_data = {
                  'name': name,
                  'email': emailFrom ,
                  }
               message.template_id = '********************************'
               try:
                     sg = SendGridAPIClient(os.environ.get('SENDGRID_API_KEY'))
                     response = sg.send(message)
                     messages.success(request, "Thanks, We received your Order message. We will get back to you!.")
                     OrderItem.delete(order)
               except Exception as e:
                       messages.warning(request, "Sorry, Order message not sent.Please Try Again!.")
         return render(request, "checkout.html", context)

您可以在动态模板中使用 Handlebars.js 语法。

这里是Sendgrid中的link到the documentation