0
from django.db import models
from django.contrib.auth.models import AbstractUser
class CustomUser(AbstractUser):
type_choices = (
('A', 'User Type A'),
('B', 'User Type B'),
('C', 'User Type C'),
)
user_type = models.CharField(max_length=2,
choices=type_choices,
default='C')
class UserDetails(model.Model):
type = models.OneToOneField('CustomUser')
extra_info = models.CharField(max_length=200)
各ユーザーのフィールドが異なるようにするにはどうすればよいですか。例。 1つは利用可能な時間フィールドを持っています。別のものにはアドレスフィールドがあります。異なる属性のユーザー
または、このようなことをしますか?
class BaseUser(AbstractUser):
# all the common fields go here, for example:
email = models.EmailField(max_length=10,unique=True)
name = models.CharField(max_length=120)
class StoreOwnerUser(BaseUser):
# All Store Owner specific attribute goes here
balance = models.some_balance_field()
stores_owned = models.some_stores_owned_field()
class Meta:
verbose_name = 'Store Owner'
これを行う方法であれば、何がAUTH_USER_MODELとして指定されますか?ログイン時:user = authenticate(username = username、password = password)。どのテーブル(CustomerUserまたはStoreOwnerUser)から認証機能がチェックされますか?大丈夫ですが、それぞれのログインページを分けることはできますが、どのように処理するのですか?
だから、それらのクラスのためには、クラスAタイプ(models.Model)でなければなりません...またはそれは、クラスAタイプ(custombaseprofile) – questnofinterest
タイプA(models.Model)する必要があります: CustomUser = models.OneToOneField( 'CustomUser' ) –
は、ユーザーをフィールドに割り当てるために使用されます。 user = get_object_or_404(settings.AUTH_USER_MODEL、pk = user_id) – questnofinterest