auth_permission
テーブルの下に権限を追加したい。別のアクセス許可を手動で挿入するときは、それcontent_type_id
も挿入する必要があります。これはcontent_type
表を参照しています。私はそれが何をするのか分かりません。ユーザーがその権限を持っていない場合、HTML行のセットを削除したい。の重要性はcontent_type_id
何ですか?
2515 次
1 に答える
2
「content_type_id」は、Django によって決定されるフィールドの名前です。
フィールドは、ContentType のインスタンスへの外部キー関係です。
このフィールドの重要性は、パーミッションが適用されるオブジェクトを指定することです (django ソースコード 1.7.11 より):
アクセス許可は、特定のオブジェクト インスタンスごとではなく、オブジェクトのタイプごとにグローバルに設定されます。「メアリーはニュース記事を変えるかもしれない...
上記の引用では、コンテンツ タイプ フィールドは「新しいストーリー」への外部キー リレーションになります。
あなたのユースケースでは、誰かが HTML の一部を見るかどうかを制御できるようにしたいと考えています。次のように、パーミッションを定義するカスタム モデルを作成できます。
class MyPermObject(models.Model):
pass
そして、次のように上記の許可を作成します。
content_type = ContentType.objects.get_for_model(MyPermObject)
permission = Permission.objects.create(codename='can_see_html', name='Can see my HTML', content_type=content_type)
ユーザーの許可を照会する方法については、django ドキュメントを参照してください: https://docs.djangoproject.com/en/1.9/topics/auth/default/#topic-authorization
于 2016-01-13T08:46:29.270 に答える