本文へスキップ
hdknr blog
戻る

Djanog: Permission: app_lablel.codename

Django: Permission: app_label.codename をアノテートする

from django.db.models import F, Value
from django.db.models.functions import Concat
from django.contrib.auth import models as auth_models

class PermissionDef:
    @classmethod
    def choices(cls):
        return auth_models.Permission.objects.annotate(
            code=Concat("content_type__app_label", Value("."), "codename")
        ).values_list("code", "name")

ただし、件数が大きいので, フィールドのchoices に使うのは現実的ではない



前の記事
Python: モジュールの実装パス
次の記事
DRF: Userを所属グループで検索