django では、syncdb が django.contrib.auth がインストールされた状態で実行されると、デフォルトで各モデルにデフォルトのパーミッションが作成されます... foo.can_change 、 foo.can_delete 、 foo.can_add など。モデルにカスタム権限を追加するには、クラス Meta: をモデルの下に追加し、そこで権限を定義します。
私の質問は、User モデルにカスタム権限を追加したい場合はどうすればよいですか? foo.can_view のように。次のスニペットでこれを行うことができます。
ct = ContentType.objects.get(app_label='auth', model='user')
perm = Permission.objects.create(codename='can_view', name='Can View Users',
content_type=ct)
perm.save()
しかし、syncdb でうまく機能するものが必要です。たとえば、カスタム モデルのクラス Meta です。ユーザーモデルを拡張する方法であるため、これらを UserProfile の下のクラス Meta: に含める必要があります。しかし、それは正しい方法ですか?それは UserProfile モデルに結び付けられませんか?