如何在Django模板中添加,乘以数字变量?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Django模板中添加,乘以数字变量?相关的知识,希望对你有一定的参考价值。

我创建的JS片段依赖于{% for key, value in data.items %}..{% endfor %}标记中可用的forloop.counter变量。

有没有办法将数学运算符(*, - ,+,/)与forloop.counter变量一起使用?

答案

文档中有过滤器add add

我很确定在Django模板中没有内置的方法可以使用其他数学运算来代替数字。但是你可以随时make your own。这样做并不总是一个好主意。

您希望将逻辑保留在视图中并将渲染保留在模板中。

在您的情况下,您应该将计数器存储在javascript变量中,并在您的代码段中使用它。

另一答案

可以使用django内置的widthratio模板标签和add过滤器:

  • 将5添加到forloop.counter {{forloop.counter|add:5}}
  • 从forloop.counter {{forloop.counter|add:"-5"}}中减去5
  • 将loop.count除以5 qazxsw poi
  • 将forloop.counter乘以5 {% widthratio forloop.counter 5 1 %}
另一答案

使用{% widthratio forloop.counter 1 5 %}django-mathfilters过滤器不会将数字强制转换为整数,因此您可以添加浮点数:

addition
另一答案

Mathieu Marques提示之后,这就是我使用{% load mathfilters %} {{ num1 | addition:num2 }} 所做的。

使用分页片段后,模板每页渲染5条记录。每页演示文稿重置了forloop.counter。每页创建一个连续计数器..

custom filter

其中from django import template register = template.Library() @register.filter(name='cei') def compute_exact_id(value, rb_page_no): new_id = value+(5*(rb_page_no-1)) ## here's the mathematical operation return new_id 是当前页码并将rb_page_no放在我的模板顶部,其中extra_filter是我放置{% load extra_filter %}的文件名。

另一答案

我在我的模板文件carts.html中创建了下一个

compute_exact_id

我的基于视图的功能是:

{% extends 'base.html'%} {% block contenido %}
<h1>Checkout</h1>
<p>Subtotal + IVA: ${{ orden.sub_total }}</p>
<p>Envio:$ {{ orden.costo_envio }}</p>
<p>Total a pagar:$ {{ orden.sub_total|add:orden.costo_envio }}</p>
{% endblock %}

对我来说这种方法很好

def carrito_checkout(request): if 'cart_id' in request.session: orden_object, created = Orden.objects.get_or_new(request) if orden_object is None: return redirect('carrito:home') print(orden_object) context = { "orden": orden_object } return render(request, 'carrito_checkout.html', context=context)

以上是关于如何在Django模板中添加,乘以数字变量?的主要内容,如果未能解决你的问题,请参考以下文章

在 django 模板变量中将数字连接为字符串

如何通过变量/方法将Django模板代码注入模板?

Django之模板

Django,如何将变量从 Django 管理员传递到模板?

如何在列表 django 模板列表中使用变量

Django模板语言