管理するようにした際に、片方のモデルがadminのユーザーパーミッション一覧に
表示されなくて困っていた。
ユーザーパーミッションのテーブルを更新する方法がないかと
調べてみるとこんなページを発見
http://www.djangosnippets.org/snippets/698/
これを参考にパーミッションを更新するスクリプトを書いてみた。
# -*- coding: utf-8 -*-
from django.core.management.base import BaseCommand
from django.contrib.contenttypes.management import update_all_contenttypes
from django.contrib.auth.management import create_permissions
from django.db.models import get_apps
"""
パーミッションを更新する
"""
class Command(BaseCommand):
def handle(self, *args, **options):
# Add any missing content types
update_all_contenttypes()
# Add any missing permissions
for app in get_apps():
create_permissions(app, None, 2)
これをインストール済みのアプリのmanagement/commands/syncpermissions.pyとして保存すれば、以下のコマンドで更新できる。
$ python manage.py syncpermissions
0 件のコメント:
コメントを投稿