Django & POSTMARK API Шаблоны
Я пытаюсь отправить шаблон квитанции с помощью POSTMARK API из моего приложения Django, но у меня возникают трудности с извлечением нескольких элементов в деталях квитанции. Я преобразовываю свой запрос элементов в заказе в список, затем из списка мы сериализуем его в JSON. Теоретически, возможно, мне не нужно сериализовать его в JSON, я мог бы просто использовать список. Вот вывод, который я получаю с JSON с товарами, когда я запускаю print:
[{'product__name': 'Pokemon 25th Anniversary', 'quanity': 1, 'product__point_price': 100.0}]
Сериализация выглядит правильно, однако если у вас несколько элементов, это становится проблемой. Если вы посмотрите вниз на мой код под деталями получения, вы увидите, что я должен был указать индекс [0] перед указанием имени ключа. Как мне сделать это без указания индекса [0], чтобы получить все товары?
Вот мой код :
VIEW
@login_required
def checkoutcomplete(request):
customer = request.user
order = Order.objects.get(customer= customer , complete = False, )
favorites = Favorite.objects.filter(customer = customer.id)
today_date = datetime.datetime.today()
today_date_strf = datetime.datetime.strftime(today_date,"%m/%d/%Y" )
items = order.orderitem_set.all()
data = list(items.values("product__name","quanity","product__point_price"))
save_json = json.dumps(data, indent = 2)
my_cart_json = json.loads(save_json)
#POST MARK API
url = "https://api.postmarkapp.com/email/withTemplate"
payload = json.dumps({
"From": "",
"To": "",
"TemplateId": 28132290,
"TemplateModel": {
"counselor_name": "Fellow Counselor",
"student_name": student.student_name,
"receipt_id": str(order.transaction_id),
"date": today_date_strf,
"points": order.get_cart_total,
"receipt_details": [
{
"description": my_cart_json[0]["product__name"], <--- Here
"quanity": my_cart_json[0]["quantity"], <--- Here
"amount": my_cart_json[0]["product__point_price"] <---Here
}
],
},
"MessageStream": "outbound"
})
headers = {
'Content-Type': 'application/json',
'X-Postmark-Server-Token': settings.POSTMARK["TOKEN"]
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
Вот HTML в шаблоне POSTMARKS.
<table class="purchase_content" width="100%" cellpadding="0" cellspacing="0">
<tr>
<th class="purchase_heading">
<p class="align-left">Description</p>
</th>
<th class="purchase_heading">
<p class="align-right">Amount</p>
</th>
</tr>
{{#each receipt_details}}
<tr>
<td width="60%" class="align-left purchase_item">{{description}} Quanity: {{quanity}}</td>
<td width="40%" class="align-right purchase_item">{{amount}}</td>
</tr>
{{/each}}
<tr>
<td width="80%" class="purchase_footer" valign="middle">
<p class="purchase_total purchase_total--label">Total Points</p>
</td>
<td width="20%" class="purchase_footer" valign="middle">
<p class="purchase_total">{{points}}</p>
</td>
</tr>
</table>
</td>
</tr>
</table>