我有一个问题,我在Django做一个项目,有一个名为Pagos(Payments)的应用程序的一部分,在那里我显示了以下内容:已支付的款项,Total_Pagos(总付款)和待定付款.

为了显示这些付款的信息,我使用了mathfilters,因为我的模板中使用了加法和减法.

对于模板,它正确地显示了信息,只有当我想要使用条件时才会出现问题,因为一旦待付款等于0.00,这意味着客户已经支付了所有款项,必须显示一个文本,上面写着"PAGADO"(已支付),当待付款时,它有另一个大于0.00的数字必须显示一个标签,说"PENDIENTE"(待付款).

这是我正在使用的代码,它是有效的,因为它向我显示了COSTO_SERVICIO(服务量)成本减go TOTAL_PAGOS(总付款)的结果,无论它显示的是未完成的付款,它可以显示几个数字或0.00:

{% for juicio in juicios %}                                                            
       {{ juicio.costo_servicio|sub:total_pagos }}
{% endfor %}

但如果我这样做,它不会显示if,因此不会进行减法或显示文本PAGADO(PAGADO(PAYED)):

{% for juicio in juicios %}
  {% if juicio.costo_servicio|sub:total_pagos == 0.00 %}
    {{ juicio.costo_servicio|sub:total_pagos }}
    <td class="text-right"><span class="saldo-pagado" ><strong>PAGADO</strong></span></td>
  {% endif %}
{% endfor %}

我会和你分享我的其他模型和我的观点:

Models.py试验

class Juicios(models.Model):
    cliente = models.ForeignKey(Cliente, on_delete=models.CASCADE)
    no_expediente_cv = models.CharField(max_length=100)
    costo_servicio=models.DecimalField(max_digits=10, decimal_places=2)

Models.py付款

class Pagos(models.Model):
    cliente = models.ForeignKey(Cliente, on_delete=models.CASCADE)   
    monto_pago=models.IntegerField()

查看.py付款

def PagosDetalle(request, cliente_id):
    context = {}
    cliente = Cliente.objects.get(id=cliente_id)
    pagos = Pagos.objects.filter(cliente=cliente_id)
    juicios = Juicios.objects.filter(cliente=cliente_id)
    total_pagos = Pagos.objects.filter(cliente=cliente).aggregate(sum_of_all_orders=Sum('monto_pago'))
    pagos_filtrados=Pagos.objects.filter(cliente=cliente)

    context["pagos"] = pagos
    context["pagos_filtrados"] = pagos_filtrados
    context["total_pagos"] = total_pagos['sum_of_all_orders']
    if juicios:
        context["juicios"] = juicios

    return render(request, "pagos-detalle.html",context)

推荐答案

您可以使用with标记将计算结果存储在模板变量中,例如:

{% with juicio.costo_servicio|sub:total_pagos as result %}
  {% if result == 0 %}
     ...
  {% endif %}
{% endwith %}

Python相关问答推荐

仅从风格中获取 colored颜色 循环

处理(潜在)不断增长的任务队列的并行/并行方法

对于一个给定的数字,找出一个整数的最小和最大可能的和

运行Python脚本时,用作命令行参数的SON文本

在线条上绘制表面

大小为M的第N位_计数(或人口计数)的公式

Polars:用氨纶的其他部分替换氨纶的部分

如果满足某些条件,则用另一个数据帧列中的值填充空数据帧或数组

Pandas Loc Select 到NaN和值列表

为什么Django管理页面和我的页面的其他CSS文件和图片都找不到?'

在代码执行后关闭ChromeDriver窗口

从源代码显示不同的输出(机器学习)(Python)

Python如何导入类的实例

如何在SQLAlchemy + Alembic中定义一个"Index()",在基表中的列上

Stats.ttest_ind:提取df值

使用Scikit的ValueError-了解

解析CSV文件以将详细信息添加到XML文件

为什么在更新Pandas 2.x中的列时,数据类型不会更改,而在Pandas 1.x中会更改?

将标签与山脊线图对齐

将索引表转换为Numy数组