2017-02-28 10 views
0

私は本当にこの質問をしたくなかったが、これに関する別のチュートリアルやドキュメントの情報量は私には圧倒されている。Django、管理者のユーザーのモデルの役割を設定

私は、ユーザーの3種類がありますAdminGuideUser

  1. Adminは管理ページで何かを行うことができます。
  2. GuideのみGuideTourモデルオブジェクトを作成し、唯一自分のツアーを管理することができ、簡単なUsersGuides
  3. Admin
  4. を変更することができます。
  5. User管理ページにログインできません。

管理者ページでそのような役割を果たすために、これらのユーザーをモデル定義でどのように設定できますか?

シングルテーブル継承モード?

+1

Djangoのデフォルトを使用するのではなく、独自の管理ページを作成することをお勧めします。独自の管理ページを作成すると、カスタマイズする権限が増え、私の謙虚な意見では、管理ページを変更するよりも作業がはるかに簡単になります。 –

答えて

1

デフォルトDjangoの認証システム(django.contrib.auth)を使用している場合は、ユーザーグループを作成し、管理インタフェース(ホーム>認証・承認>グループ)にこれらの権限のほとんどを設定することができますが:

enter image description here

Tourモデルに「ForeignKey」フィールドを追加し、そのオブジェクトをオブジェクトにリンクさせたい場合があります(request.userが「正しい」ユーザーであるかどうかを確認してください)各編集の試行)...

または、必要なロジックを持つメソッドを定義します。これを参照してください:Object Ownership in Django

+2

私はそれがそれに値するとは思わない。カスタム管理ページでは、デコレータを使用してメソッドにアクセスし、テンプレート内の基本ifステートメントを使用して、ユーザーに関連するアクセス許可がある場合にのみコンテンツを表示できます。デフォルトの管理ページを修正することに比べ、柔軟性は非常に高いです。 –

+0

@almostabeginner:うん、あなたは正しい。彼がやりたいと思っている変更の程度によって、カスタム管理者がもっと簡単になるかもしれません。 – helb

関連する問題