2

auth_permissionテーブルの下に権限を追加したい。別のアクセス許可を手動で挿入するときは、それcontent_type_idも挿入する必要があります。これはcontent_type表を参照しています。私はそれが何をするのか分かりません。ユーザーがその権限を持っていない場合、HTML行のセットを削除したい。の重要性はcontent_type_id何ですか?

4

1 に答える 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 に答える