2013年6月26日水曜日

Djangoでモデルにひもづかないパーミッションを作りたい

Djangoで新しいパーミッションを作りたいものの、どのモデルとも深い関係はないんだよなー、というときには、stackoverflowの How can I use Django permissions without defining a content type or model? で紹介されている方法が便利です。

PermissionモデルのプロキシモデルなGlobalPermissionにpermissionを追加すれば、

from django.contrib.auth.models import Permission

class GlobalPermission(Permission):
    class Meta:
        proxy = True
        # ↓↓↓↓↓↓
        permissions = (
            ('listen_to_me', u'オレの話しを聞け'),
        )

authのパーミッションとして、

{% if perms.auth.listen_to_me %}
むかしむかしあるところに…
{% endif %}

つかえるようになります。

0 件のコメント:

コメントを投稿