如何在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了。

我使用了它,但没有任何例子。有什么想法或例子吗?

+0

首先代替进口'ChachaUser'使用'get_user_model()'无处不在。如果你需要添加字段'gender,birth'到'createsuperuser'命令,使用 'REQUIRED_FIELDS = ['email','birth','gender']' –

+0

@AnnaVracheva:它工作的很好!谢谢 :) – user3595632

您有兴趣UserManagercode)。

例子:

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