如何在Django模板中添加,乘以数字变量?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Django模板中添加,乘以数字变量?相关的知识,希望对你有一定的参考价值。
我创建的JS片段依赖于{% for key, value in data.items %}..{% endfor %}
标记中可用的forloop.counter变量。
有没有办法将数学运算符(*, - ,+,/)与forloop.counter
变量一起使用?
我很确定在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模板中添加,乘以数字变量?的主要内容,如果未能解决你的问题,请参考以下文章