loadタグ
loadタグ
Djangoはloadタグと呼ばれるHTMLファイルに埋め込めるタグがあります。
それを使うことでカスタムタグテンプレートタグセットを読み込むことが出来ます。
カスタムタグの作成
今回は2倍にするカスタムタグを作っていきます。
まずsample_app直下にtemplatetagsを作り、その下にinit.py、twice.pyを作ります。
例
sample_app
|-- __init__.py
|-- admin.py
|-- apps.py
|-- migrations
|-- models.py
|-- templatetags
| |-- init.py
| `-- twice.py
|-- tests.py
|-- urls.py
`-- views.py
次にtwice.pyにコードを書いていきます。
例
templatetags/twice.py
from django import template
register = template.Library()
@register.simple_tag
def twice_number(number):
return number * 2
registerでカスタムタグが登録されます。
単純に受け取った値を2倍にして返します。
HTMLファイルに埋め込む
先程作成したタグを早速埋め込んでみましょう。
例
index.html
{% extends 'base.html' %}
{% load static %}
{% load twice %}
{% block main %}
<h1>Twice number sample</h1>
<p>{% twice_number 1 %}</p>
<p>{% twice_number 2 %}</p>
<p>{% twice_number 3 %}</p>
{% endblock %}
{% load twice %}でtwice.pyをloadし、{% twice_number 1 %}でtwice_number関数に引数,1を渡しています。
python manage.py runserverをしてみましょう。
それぞれ2倍になっているのが確認出来るはずです。
注意
カスタムタグのファイルに変更を加えたらrunserverし直しましょう。
そうしないと反映されないのでご注意ください。
Just Python フリープラン
ジャスパイなら教材は全て無料!