2011-12-26 3 views
0

맞춤 템플릿 태그를 만들고 싶었고 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 파일

+0

디렉토리가'templatetags'가 아니라'templatetag'입니다. –

답변

0

를 포함 한 귀하의 생성

__init__.py 

templatetags 디렉토리에 있습니까? Exec

register = template.Library() 

파일이 있습니까?

+0

예 두 가지를 모두했습니다. – Sachin

0

register = template.Library()앞에을 입력하고 templatetag 정의를 확인하십시오. 그것은 후에 작동하면 작동하지 않습니다. 또한 .py가 templatetag 디렉토리에 있는지 확인하고 나머지 오류 출력을 확인하여 유용한 정보가 있는지 확인하십시오.

+0

예 두 가지 작업을 모두 마쳤습니다 ... templatetag 정의 파일을 추가했습니다. – Sachin

관련 문제