맞춤 템플릿 태그를 만들고 싶었고 here 단계를 수행했습니다. 내 templatetags를 앱 디렉토리에 저장해야한다고합니다. 그래서 나는 새로운 앱을 만들었고 거기에 templatetags를 넣고 앱을 installed APPS
에 포함 시켰습니다. 내 템플릿에 템플릿 태그를 load
할 때Django에서 사용자 정의 templatetags를 검색하는 방법
는하지만, 나는 다음과 같은 오류 얻을 :
'generic_tags' is not a valid tag library: Template library generic_tags not found,
을 그리고 나는 그것을 검색하는 디렉토리, 내 응용 프로그램은 대한의 templatetags 라이브러리를 볼 때 거기 없어. 그것은 내가 만든 앱에서 템플릿 태그를 검색하지 않는다는 것을 의미합니다. 내 settings.py
파일에도 아무것도 추가해야합니까?
내 templatetag 정의 파일
import datetime
from django import template
from django.utils.translation import ugettext, ungettext
register = template.Library()
@register.filter(name='timesince_human')
def humanize_timesince(date):
if not date:
return
delta = datetime.datetime.now() - date
num_years = delta.days/365
if (num_years > 0):
return ungettext(u"%d year ago", u"%d years ago", num_years) % num_years
num_weeks = delta.days/7
if (num_weeks > 0):
return ungettext(u"%d week ago", u"%d weeks ago", num_weeks) % num_weeks
if (delta.days > 0):
return ungettext(u"%d day ago", u"%d days ago", delta.days) % delta.days
num_hours = delta.seconds/3600
if (num_hours > 0):
return ungettext(u"%d hour ago", u"%d hours ago", num_hours) % num_hours
num_minutes = delta.seconds/60
if (num_minutes > 0):
return ungettext(u"%d minute ago", u"%d minutes ago", num_minutes) % num_minutes
return ungettext(u"%d second ago", u"%d seconds ago", delta.seconds) % delta.seconds
이며 utilityapp
라는 응용 프로그램의 templatetag
디렉토리에 저장되어 나는 또한 __init__.py
파일
디렉토리가'templatetags'가 아니라'templatetag'입니다. –