Djangoでテンプレート内でユーザー権限を扱う(カスタムタグ)

Facebook にシェア
Pocket
LINEで送る
このエントリーを Google ブックマーク に追加

毎回忘れるので、もう忘れないための方法。

appディレクトリにtemplatetagsディレクトリを作成する

app/templatetags

templateディレクトリに__init__.pyファイルを作成

/app/templatettags/
          +- __init__.py

templateディレクトリにtag_extras.pyファイルを作成

ファイル名は何でも良い。

/app/templatettags/
          +- __init__.py
          +- tag_extras.py

tag_extras.pyに次のソースを記述する

# -*- coding: utf-8 -*-
from django import template

register = template.Library()

@register.filter(name="has_perm")
def has_perm(user, permission_name):
    return user.has_perm(permission_name)

テンプレートでカスタムタグを使う

以下は利用する例

                {# admin_pages.can_view権限を持っているユーザーは表示される #}
                {% if user|has_perm:'admin_pages.can_view' %}
                表示される
                {% endif %}

Related posts

コメントを残す