私はDjango1.3とPython2.6を使用してWebアプリに取り組んでいます。Djangoユーザーモデルを拡張して、3つのタイプのユーザーが存在し、各タイプのアクセス許可を管理する必要があります。
解明するために、ユーザーには、教員、TA、学生の3つのタイプがあるとします。TAは新しい「割り当て」を作成でき、教員は「レビュー」して確認できます。学生は「ソリューション」を送信します。これは、教員が「レビュー」する必要があり、TAは最終的に「レビュー済み」のソリューションをチェックできます。現在、ユーザーには3つのタイプがあります。TA
■アサインメントを作成してソリューションを評価できるユーザー、Faculty
アサインメントとソリューションを確認して確認できるユーザー、ソリューションをStudents
送信できるユーザー。
これで、ユーザーモデルを拡張する方法が2つあることを理解しました。UserProfileを作成し、' user_type
'というフィールドを追加できます。もう1つの方法は、ユーザーモデルをサブクラス化することです。サブクラス化は、ユーザーのタイプごとに異なるフィールドがあるため、より良いアプローチだと思います。
私は単一のログインフォームを使用しますが、ユーザーのタイプごとに異なる登録フォームを使用できます。なぜどちらかのアプローチを選ぶのですか?
さまざまなタイプのユーザーのアクセス許可を管理する最良の方法は、ユーザーグループを使用することであることを理解しています。グループを作成する方法、ユーザーがグループに属しているかどうかを確認しますか?ユーザーモデルを拡張する方法の選択は、アクセス許可の管理方法に影響しますか?