11

Django でパーミッションのフィクスチャを作成しています。必要な方法でそれらをロードできます。ただし、私の質問は.. table のフィクスチャをロードしたい場合、 aと aauth_group_permissionsを指定する必要がありますが、残念ながらフィクスチャはこれを処理するための最良の方法ではありません。プログラムでこれを行う簡単な方法はありますか? 特定の値を取得して入力できるようにするには?これは通常どのように行われますか?group_idpermission_idid

4

3 に答える 3

10

適切な解決策は、フレームワーク自体が行うのと同じ方法で権限を作成することです。

post_migrateモジュール内で組み込みシグナルに接続するmanagement.pyか、management/__init__.pyそこで権限を作成する必要があります。ドキュメントには、post_migrateシグナルに応答して実行される作業はデータベース スキーマの変更を実行すべきではないと書かれていますが、フレームワーク自体がこのシグナルに応答してパーミッションを作成することにも注意する必要があります。

したがって、アプリケーションの管理モジュールを見て、それがどのように行われることになっているのかを確認することをお勧めします。django.contrib.auth

于 2012-07-04T20:38:40.990 に答える
0

@jonpa のコメントに追加するだけです。マルチテナント アプリを使用していて、フィクスチャをファイルに直接保存したい場合は、次のようにします。

python manage.py tenant_command dumpdata --schema=<schema_name> --natural-foreign --natural-primary -e auth.Permission --indent 4 > /path/to/fixtures/fixtures.json

于 2020-03-12T19:48:08.450 に答える