2012-03-29 4 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'과 '타입

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

관련 문제