我正在运行python 3.5,django 1.10。
这是我第一次使用api,我很难理解该怎么做。是的,我是菜鸟。
我正在尝试在模板页面上显示stripe发票明细。
我收到了一些可以显示基本信息的代码,但是我在显示发票所涉及的计划名称时遇到了困难。
我已经包含了发票api的屏幕截图,显示了发票的必要可用详细信息,但我不确定如何显示计划名称(下面用红色圈出):
这是我的模板代码:
{% for invoice in invoices %}
<tr>
<td>{{ invoice.date|date:'dS F, Y P' }}</td>
<th style="display: none;">{{ invoice.stripe_id }}</td>
<td>{{ invoice.period_start|date:'dS F, Y' }}</td>
<td>{{ invoice.period_end|date:'dS F, Y' }}</td>
<th style="display: none;">{{ invoice.charge }}</td>
<td>{{ invoice.plan.name }}</td>
<td>{{ invoice.paid|yesno:'Yes,No' }}</td>
<td>{{ invoice.refunded|yesno:'Yes,No' }}</td>
</tr>
{% endfor %}
以下是显示内容:
我希望有人可以推动我朝着正确的方向前进,以显示计划名称。
答案 0 :(得分:0)
不会只是:
{{ invoice.lines.data.0.plan.name }}
答案 1 :(得分:0)
条纹invoices具有lines
属性,该list object属性line items包含type
列表。
如果为订阅创建了发票,它将包含订阅的订单项(即plan
属性为"subscription"
的订单项及其plan object属性将包含订阅的create invoice items。
如果您不以某种方式手动update subscriptions而不是name
,那么该订单项将成为列表中唯一的元素,您可以使用以下网址访问计划的{{3}}
invoice.lines.data[0].plan.name
如果您的发票中有多个订单项,则需要迭代每个订单项,直到找到订阅的订单项。
此外,这与您的问题没有直接关系,但为了访问发票的ID,您需要使用:
invoice.id
而不是:
invoice.stripe_id