Django 1.5の新しい構成可能なユーザーモデル機能を使用して複数のユーザータイプを実装するための推奨される方法は何ですか?
プライベートユーザーとトレードユーザーの2つのユーザータイプがあり、それぞれに独自の必須フィールドのセットがあります。
これを実装するために私が考えることができる2つの方法があります:
1)マルチテーブル継承
class BaseUser(AbstractBaseUser):
email = models.EmailField(max_length=254, unique=True)
# ...
class PrivateUser(BaseUser):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
# ...
class TradeUser(BaseUser):
company_name = models.CharField(max_length=100)
# ...
構成可能なユーザーモデルと組み合わせてマルチテーブル継承を使用することに問題はありますか?
2)「type」属性を持つ単一のモデルを使用する
class User(AbstractBaseUser):
email = models.EmailField(max_length=254, unique=True)
user_type = models.CharField(max_length=30, choices={
'P': 'Private',
'T': 'Trade',
})
first_name = models.CharField(max_length=30, blank=True)
last_name = models.CharField(max_length=30, blank=True)
company_name = models.CharField(max_length=100, blank=True)
# ...
この方法では、に依存する条件付き検証が必要になりますuser_type
。
これらの方法のどれが私のユースケースに最も適していますか?それとも、これを達成するためのより良い方法がありますか?
また、ケース番号1の場合、ユーザーをフィルタリングするにはどうすればよいですか?
ありがとう。