[Tutorial] DjangoのTemplateから呼び出せるメソッドを作成する

Learn by example

例としてis_iphone()というメソッドを任意のTemplateから呼び出す場合の実装を示します。
is_iphone()はユーザーの端末がiPhoneであればTrue,そうでなければFalseを返すメソッドです。

Create file

まず、django_projectの配下にlibフォルダーを作成してcustom_context.pyを作成してください。

Modify settings.py

次にproject/settings.pyのTEMPLATE_CONTEXT_PROCESSORSに custom_context.pyにis_iphone()というメソッドを以下の様に追記します。 これでis_iphone()というメソッドがTemplateから参照できるようになります。

TEMPLATE_CONTEXT_PROCESSORS = (
    ...
    'lib.context_processors.custom_context.is_iphone',
)

Implement is_iphone()

最後にis_iphone()を実装します。

custom_context.py

#coding: utf-8
from django.conf import settings


def is_iphone(request):
    if 'iPhone' in request.META['HTTP_USER_AGENT']:
        return {'is_iphone': True}
    else:
        return {'is_iphone': False}

Related Contents

Pickup Contents