djangoテンプレートラベル:簡略化されたデータが表示され、コードの再利用
Django開発では、テンプレートを使用してデータをHTMLページにレンダリングします。この記事では、Djangoテンプレートタグを使用してデータを簡素化してロジックを表示する方法を紹介します。ビューで繰り返しコードを作成しないようにします。
シンプルなコースリストHTMLテンプレートがあると仮定すると:
ビューはカリキュラムデータをテンプレートに渡し、Webページは次のように最終的に表示されます。
質問:コースの総数を示します
さて、Webページに合計コースを表示する必要があるとします。 1つの方法は、ビューに計算ロジックを追加することです。
要するに、Djangoテンプレートラベルは、Djangoテンプレートシステムにカスタム関数を追加できる特別なラベルです。コードの再利用を改善し、ビューで同じロジックを繰り返し作成することを避けることができます。
def course_list(request): total_courses = Course.objects.count() return render(request, 'courses.html', {'courses': courses, 'total_courses': total_courses})
カリキュラムアプリケーションが次のデータを表示する必要があると仮定します。
利用可能なコース
各ビューに計算ロジックを追加する代わりに、テンプレートタグを使用して操作を簡素化することをお勧めします。
フォルダー構造は次のとおりです
templatetags
ここで、これらのカスタムタグをHTMLテンプレートにロードして使用して、関連データを表示できます。 テンプレートでは、カスタムタグを読み込み、それらを使用してコースと利用可能なコースの総数を表示します。
<code> courses/ ├── templatetags/ ├── __init__.py └── course_tags.py</code>
course_tags.py
合計コース番号<总>
from django import template from courses.models import Course register = template.Library() @register.simple_tag def total_courses(): return Course.objects.count() @register.simple_tag def available_courses(): return Course.objects.filter(is_available=True).count() @register.simple_tag def enrolled_students(course_id): course = Course.objects.get(id=course_id) return course.enrolled_students.count()
コースの詳細ページでは、
テンプレートラベルを使用して、特定のコースに登録された学生の数を表示できます。def course_list(request): total_courses = Course.objects.count() return render(request, 'courses.html', {'courses': courses, 'total_courses': total_courses})
enrolled_students
タグは course.id
をパラメータとして受け取り、コースに登録されている学生の数を返します。
この記事では、ビューにコースと生徒数を追加するロジックの重複を避けるために、Django でテンプレート タグを使用する方法を例を通して説明します。テンプレート タグにより、コードの再利用性と保守性が向上します。
連絡先 - @syedamahamfahim ?
以上がDjango でカスタム テンプレート タグを作成するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。