我創建的JS代碼片段依賴於{% for key, value in data.items %}..{% endfor %}
標記中的forloop.counter變量。如何在Django模板中添加乘數變量?
有沒有辦法將數學運算符(*, - ,+,/)與forloop.counter
變量一起使用?
我創建的JS代碼片段依賴於{% for key, value in data.items %}..{% endfor %}
標記中的forloop.counter變量。如何在Django模板中添加乘數變量?
有沒有辦法將數學運算符(*, - ,+,/)與forloop.counter
變量一起使用?
我敢肯定,有沒有內置的方式來使用其他數學運算在Django模板中的數字。但是,您始終可以使用make your own。這樣做並不總是一個好主意。
你想讓你的邏輯保持在視圖中,並保持模板內的渲染。
就你而言,你應該將你的計數器存儲在一個JavaScript變量中,並在你的代碼段中使用它。
Mathieu Marques提示後,這裏是我使用的custom filter。
該模板在使用分頁代碼片段後每頁渲染5條記錄。每頁演示文稿重置forloop.counter。要創建單頁連續計數器..
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
是當前頁碼,並把{% load extra_filter %}
在上面我的模板,其中extra_filter是文件名,我放置compute_exact_id
。
有可能使用Django內置widthratio模板標籤和過濾add:
{{forloop.counter|add:5}}
{{forloop.counter|add:"-5"}}
{% widthratio forloop.counter 5 1 %}
{% widthratio forloop.counter 1 5 %}
使用django-mathfilters。 addition
過濾器不會將數字強制爲整數,因此您可以添加浮點數:
{% load mathfilters %}
{{ num1 | addition:num2 }}
我明白了。這給了我一個想法,使用[自定義過濾器] ..編輯答案... – Charlesliam
鏈接不工作了。 [這裏](https://docs.djangoproject.com/en/dev/ref/templates/builtins/#add)最新版本。 – J0ANMM
@ J0ANMM編輯,謝謝。 –