0
我剛開始使用自定義模板標記。無法獲取自定義模板標記
我有下面的代碼在我forum_tags.py
定製tempates模塊:
from datetime import datetime, timedelta
from django import template
from django.utils.timesince import timesince
register = template.Library()
@register.filter
def time_until(value):
now = datetime.now()
try:
difference = value - now
except:
return value
if difference <= timedelta(minutes=1):
return 'just now'
return '%(time)s ago' % {'time': timesince(value).split(', ')[0]}
的代碼必須採取由timesince
模板標籤返回的字符串,並從中只返回第一個值(由splited「」)。
在我html
文件我用它像這樣:
{% load forum_tags %}
<div class="started">
<p>{{ obj.pub_date|timesince:forum_time|time_until }}</p>
</div>
但我仍然得到整個字符串。 有什麼問題?
你知道內置'timeuntil'過濾器,對吧? https://docs.djangoproject.com/en/dev/ref/templates/builtins/#timeuntil你的用例看起來有點奇怪,所以我不知道它是否會完全按照你的意願去做。 –
我認爲timesince給出一個字符串,所以你不能減去一個日期時間對象。 – Jingo
@Jingo是的,我知道。我只是想通過逗號分割字符串,並只獲得第一個值。 – 9Algorithm