Django でパーミッションのフィクスチャを作成しています。必要な方法でそれらをロードできます。ただし、私の質問は.. table のフィクスチャをロードしたい場合、 aと aauth_group_permissions
を指定する必要がありますが、残念ながらフィクスチャはこれを処理するための最良の方法ではありません。プログラムでこれを行う簡単な方法はありますか? 特定の値を取得して入力できるようにするには?これは通常どのように行われますか?group_id
permission_id
id
3 に答える
適切な解決策は、フレームワーク自体が行うのと同じ方法で権限を作成することです。
post_migrate
モジュール内で組み込みシグナルに接続するmanagement.py
か、management/__init__.py
そこで権限を作成する必要があります。ドキュメントには、post_migrate
シグナルに応答して実行される作業はデータベース スキーマの変更を実行すべきではないと書かれていますが、フレームワーク自体がこのシグナルに応答してパーミッションを作成することにも注意する必要があります。
したがって、アプリケーションの管理モジュールを見て、それがどのように行われることになっているのかを確認することをお勧めします。django.contrib.auth
@jonpa のコメントに追加するだけです。マルチテナント アプリを使用していて、フィクスチャをファイルに直接保存したい場合は、次のようにします。
python manage.py tenant_command dumpdata --schema=<schema_name> --natural-foreign --natural-primary -e auth.Permission --indent 4 > /path/to/fixtures/fixtures.json