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 フリープラン
ジャスパイなら教材は全て無料!