2015-01-13 39 views
0

在模板中,我有以下 -Django的模板標籤縮短串

<tes:productiondate>{% now "Y-m-d" %}T{% now "H:i:s" %}-{{{% now "u" %}|truncatechars:4}}</tes:productiondate> 

它給我一個錯誤

Could not parse some characters: |{% now "u" %}||truncatechars:4 

{% now "u" %}不正確顯示的問題是,默認情況下它會顯示6個字符,我只希望它顯示4個字符。

我意識到truncatechars它是正確的方式來做到這一點,因爲我不想要「...」,所以我該如何將6個字符的字符串縮短爲只有4個?

回答

2

您不能將過濾器應用於模板標籤的輸出。在Django的主幹版本{% now %}標籤可以格式化時間保存到變量:

{% now "u" as msec %}{{ msec|truncatechars:4 }} 

但在目前的穩定的Django(1.7.2)的as關鍵字不被支持。因此你必須編寫custom template tag。這很容易:

import datetime 
from django import template 

register = template.Library() 

@register.simple_tag 
def microseconds(format_string): 
    return datetime.datetime.now().strftime('%f')[:4] 
+0

非常感謝這@catavaran – whoisearth