2013-08-20 52 views

回答

9

從文檔中有過濾器addadd

我敢肯定,有沒有內置的方式來使用其他數學運算在Django模板中的數字。但是,您始終可以使用make your own。這樣做並不總是一個好主意。

你想讓你的邏輯保持在視圖中,並保持模板內的渲染。

就你而言,你應該將你的計數器存儲在一個JavaScript變量中,並在你的代碼段中使用它。

+0

我明白了。這給了我一個想法,使用[自定義過濾器] ..編輯答案... – Charlesliam

+0

鏈接不工作了。 [這裏](https://docs.djangoproject.com/en/dev/ref/templates/builtins/#add)最新版本。 – J0ANMM

+0

@ J0ANMM編輯,謝謝。 –

1

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

8

有可能使用Django內置widthratio模板標籤和過濾add

  • 加5從forloop.counter {{forloop.counter|add:5}}
  • 減去5 forloop.counter {{forloop.counter|add:"-5"}}
  • devide forloop.counter通過5 {% widthratio forloop.counter 5 1 %}
  • 乘forloop.counter by 5 {% widthratio forloop.counter 1 5 %}
1

使用django-mathfiltersaddition過濾器不會將數字強制爲整數,因此您可以添加浮點數:

{% load mathfilters %} 
{{ num1 | addition:num2 }}