遍历列表时在html模板中运行python

时间:2018-12-23 00:40:17

标签: django django-templates

def ViewCharges(request):
    account = get_object_or_404(StripeAccount, team_members=request.user)
    payment_requests = PaymentRequest.objects.filter(company=account).order_by('-created')
    return render(request, 'dashboard/charges.html',{'payment_requests':payment_requests})

这是我的模板做完后的样子

               {% for request in payment_requests %}
                      <tr>

                        <td>{{ request.name }}</td>
                        <td>{{ request.email }}</td>
                        <td>{{ request.amount }}</td>
                        <td>{{ request.paid }}</td>
                        <td><a href="/dashboard/charges/{{ request.pk }}" class='btn btn-dark btn-sm'>Manage</a></td>

                      </tr>
                      {% endfor %}

在我的模型中,我将付费字段存储为便士(例如100 =£1),这是用于条纹的。而且我可以通过设置正确的格式

real_amount =  "{:.2f}".format(amount / 100)

这很好,直到我需要在html中的for循环中完成它为止,有没有办法在html文档中做到这一点

                  <tr>

                    <td>Bob</td>
                    <td>Bob@example.com</td>
                    <td>£20</td>
                    <td>Yes</td>
                    <td><a href="/dashboard/charges/3523" class='btn btn-dark btn-sm'>Manage</a></td>

                  </tr>

其余的很好,我只需要格式化方面的帮助,有人有任何建议吗?

1 个答案:

答案 0 :(得分:2)

在模型上创建一个属性以计算real_amount。然后,您可以在HTML模板或其他任何地方访问此属性,就像模型的任何其他字段属性一样。

示例:

class MyModel(...):
    ...

    @property
    def real_amount(self):
        return "{:.2f}".format(self.amount / 100)

然后在您的模板中:

{{ request.real_amount }}