2012-03-29 11 views
2

背景:djangoテンプレートでdatetimeを比較する方法

私は時間と日付を1週間しか表示しません。その後、私は日付だけを表示したい。

私はこのようなことをしたい。

{% if greenboard.datetime|timesince >= "1 week" %} 
    {{greenboard.datetime.date}}<br /> 
{% else %} 
    {{greenboard.datetime|timesince}} ago 
{% endif %} 

EDIT(これは動作しません): こんにちは、その後も編集で私が得るすべては、すべてのparameters..i.e、日付時刻とともに時間です。 templatetagには何が必要ですか?今、それが掲載された正確な時間を与え、なしを与える

{{ greenboard.datetime|timesince }} を使用してみました。この

{{ greenboard.datetime|timesince_threshold:2 }}

を使用してのように。週と日のまだそれを把握することができません。

答えて

3

timesinceは、django.utils.timesince周りの単純なラッパーです。 『datetime.datetimeの』と「タイプ: - のためのサポートされていないオペランドのタイプ(複数可):レンダリング中にフィルターが「キャッチTypeError例外をエラーを与えている

from datetime import datetime, timedelta 
from django import template 
from django.utils.timesince import timesince 

register = template.Library() 

@register.filter 
def timesince_threshold(value, days=7): 
    """ 
    return timesince(<value>) if value is more than <days> old. Return value otherwise 
    """ 

    if datetime.now() - value < timedelta(days=days): 
     return timesince(value) 
    else: 
     return value 
timesince_threshold.is_safe = False 
+0

こんにちは:あなたの問題のための最も簡単な解決策は、カスタムフィルタを書くことであろう'" – manideep

+0

コードを修正しました(私は' datetime.now() 'を見逃しました)。今すぐ参照 –

+0

こんにちは@Secator私が行った編集を確認してください – manideep

関連する問題