2

stackoverflow.comで別の質問がありますが、そのタイトルは似ていますが、要件を満たしていないため、ユーザーが大きく異なるため、異なる役割だけがうまく機能しない可能性があります。私は求人ポータルのシナリオを持っています。あるタイプのユーザーは異なる属性の異なる機能を持つ会社であり、他のタイプのユーザーは彼のプロフィールを表示して履歴書などを表示できる候補者であり、異なるURLを持ちます。したがって、それらは完全に異なりますが、一般的なことは、両方が登録ユーザーであるということです。彼らはログインフォームを使用し、パスワードを変更します。私Userはその目的でクラスを使用するつもりです。

私が直面している実際の問題は、UserProfileクラスの使用法に関するものです。UserProfileはプロファイルに使用されますが、私の場合、これら2人のユーザーは完全に異なり、プロファイルに多くの異なるものが必要です。また、将来的にはシステムにユーザータイプを追加する可能性があります。djangoにいる間、この単一のモデルをsettings.pyに追加することでプロファイルについて説明します

AUTH_PROFILE_MODULE = ‘accounts.userprofile’

それで、私が意図した機能を取得してdjangoを使用できるように、djangoで何らかの継承または抽象クラスを使用するか、他の方法でこれを行う方法はありますProfilesか?

4

1 に答える 1

2

編集:わかりました、さらに調べてみると、私の以前の答えは明らかに機能しません。

私はUserProfileクラスを抽象化することを提唱していました。ただし、これを行うと、インスタンス化できないため、正方形に戻ります。

ただし、マルチテーブル継承を使用して、目的を達成することができます。ドキュメントとインスピレーションを提供したこのQuoraスレッドでこれを参照してください。

以前に投稿したコードは、Metaサブクラスと抽象変数を除いて、ほとんど変更されていません。

class UserProfile(models.Model):
    # Some Stuff

class CompanyProfile(UserProfile):
    # Some more stuff

class CandidateProfile(UserProfile):
    # Even more stuff
于 2012-03-30T19:14:58.630 に答える