2011-12-26 9 views
0

カスタムテンプレートタグを作って、hereの手順に従っていました。私はtemplatetagsをアプリケーションのディレクトリに保存する必要があると言われています。だから私は新しいアプリを作成し、そこにtemplatetagsを入れて、アプリをinstalled APPSに含めました。Djangoでカスタムテンプレートタグを発見する方法

しかし、私は私のテンプレートでloadにテンプレートタグをしようとすると、私は次のエラーを取得:

'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

の前にのtemplatetagの定義があることを確認してください。後であれば動作しません。また、 .pyがtemplatetagディレクトリに存在することを確認し、残りのエラー出力をチェックして他に有用なものがあるかどうかを確認してください。

+0

はい私は両方のことをしました...私はtemplatetag定義ファイルを追加しました – Sachin

関連する問題