如何在django中实现自定义用户管理器?
问题描述:
创建自定义User
车型Django
继承AbstractUser
:如何在django中实现自定义用户管理器?
class ChachaUser(AbstractUser):
birth = models.DateField()
gender = models.CharField(max_length=1, choices=GENDER_CHOICES)
和我CustomUserCreationForm
:
GENDER_CHOICES = (
('M', '남'),
('F', '여'),
)
class MyUserCreationForm(UserCreationForm):
birth = forms.DateField(
widget=forms.SelectDateWidget(
years=range(1970, 2015)
),
required=True,
)
gender = forms.ChoiceField(choices=GENDER_CHOICES, initial='M')
class Meta(UserCreationForm.Meta):
model = ChachaUser
fields = UserCreationForm.Meta.fields + ('birth', 'gender')
但我想通过python manage.py createsuperuser
创建超级用户,我要实现CustomUserManager
了。
我使用了它,但没有任何例子。有什么想法或例子吗?
答
您有兴趣UserManager
(code)。
例子:
from django.contrib.auth.models import AbstractUser, UserManager
class CustomUserManager(UserManager):
# your methods
class CustomUser(AbstractUser):
# fields
objects = CustomUserManager()
答
或者这样说:
class CustomUser(User): objects = MyManager() class Meta(object): proxy=True
首先代替进口'ChachaUser'使用'get_user_model()'无处不在。如果你需要添加字段'gender,birth'到'createsuperuser'命令,使用 'REQUIRED_FIELDS = ['email','birth','gender']' –
@AnnaVracheva:它工作的很好!谢谢 :) – user3595632