私は2つの種類のユーザー(生徒と教師)がいるWebサイトを持っています。クラスベースのビュー(ベストプラクティス)を使用したDjango複数のユーザープロファイル
両方のタイプに共通のログイン機能、年齢、性別などがありますが、学生用のレポートカードやチューター用の学位証明書などの属性が異なります。
私はこの質問をお読みください。Django - Multiple User Profilesとセットアップ私のプロフィールを、以下に示すよう:上記にリンク
class UserProfile(models.Model):
user = models.OneToOneField(User, primary_key=True, related_name='profile')
mobile = models.CharField(max_length=10, blank=False, null=True)
picture = models.ImageField(
upload_to='images/', default='images/newuser.png')
age = models.IntegerField(null=True)
slug = models.SlugField()
...
そして他の二つのモデルを。例:
class StudentProfile(models.Model):
profile = models.ForeignKey(UserProfile, related_name="user_profile")
#more custom attributes
class TutorProfile(models.Model):
profile = models.ForeignKey(UserProfile, related_name="doctor_profile")
#more custom attributes
は今私の質問:
1)SlugField
はUserProfile
属性に定義されていますが、理想的にUser.username
フィールドを使用します。これは、これらの2つのテーブル間の結合が毎回発生することを意味します。これは期待されていますか?
2)クラスベースのビューを使用していると仮定すると、プロファイルの編集/表示は問題のUserProfile
によって異なります。しかし、私はユーザーが同じページ上の彼のすべての詳細を編集/表示できるようにしたい。したがって、TutorProfile
/StudentProfile
も取得し、カスタムロジックを追加して更新が確実に行われるようにする必要があります。
これらの状況を処理する適切な方法があるはずです(多くのWebサイトには同様の要件があるため)。このような状況では、ベストプラクティスはどのようなものですか?
これに代わる実装をしている人はいますか? – sudshekhar
私は何かを思いついたら、私は答えを投稿します。 –