この記事では、Django のカスタム テンプレート タグとフィルター (コード例) に関するコンテンツを紹介します。これには一定の参考価値があります。必要な友人は参照できます。お役に立てば幸いです。
1, テンプレート ライブラリの作成
APP が配置されているディレクトリに新しいパッケージ templatetags を作成し、ストレージ タグを作成しますまたは、myfilters.py などの任意の名前のモジュールをフィルターします。
このモジュールに関連するコードを記述します。
注: templatetags が配置されている APP は、構成ファイルで構成する必要があります。
2. フィルターを定義します
フィルターは関数です。最初のパラメーターは処理される値です。その後は、任意の数のパラメーターを指定できます。フィルターパラメータ。
from django import template from django.template.defaultfilters import stringfilter register=template.Library() # 去除指定字符串 @register.filter(name='mycut') @stringfilter def mycut(value,arg): return value.replace(arg,'') # 注册过滤器 # register.filter(name='mycut',filter_func=mycut)
3. タグの定義
simple_tag
データを処理して特定のデータを返す
@register.simple_tag(name='posts_count') def total_posts(): return Post.published.count()
inclusion_tag
データを処理し、レンダリングされたテンプレートを返します
@register.inclusion_tag('blog/post/latest.html') def show_latest_posts(count=5): latest_posts=Post.published.order_by('-publish')[:5] return { 'latest_posts':latest_posts, }
blog/post/latest.html内容は次のとおりです:
<strong>最新文章</strong> <ul> {% for post in latest_posts %} <li> <a href="{% url 'blog:post_detail' post_id=post.id %}">{{ post.title }}</a> </li> {% endfor %} </ul>
4. 使用
ラベルまたはフィルターをカスタマイズする前に、{% ロード モジュール名%}
を使用して、テンプレート ファイルにカスタム ラベルとフィルターをロードする必要があります。
後は、Django に付属のタグと同じように使用できます。
注: カスタム タグまたはフィルターが配置されているモジュールが、現在のテンプレートによって継承された基本テンプレートにロードされている場合でも、現在のテンプレートに再度ロードする必要があります。
[関連する推奨事項: Python ビデオ チュートリアル ]
以上がDjango のカスタム テンプレート タグとフィルター (コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。