如何在django中实现自定义用户管理器?

时间:2016-08-23 08:27:55

标签: django django-users

我在User中创建了继承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

我用谷歌搜索了它,但没有任何例子。请问任何想法或例子吗?

2 个答案:

答案 0 :(得分:2)

您对UserManagercode)感兴趣。

示例:

from django.contrib.auth.models import AbstractUser, UserManager

class CustomUserManager(UserManager):
    # your methods

class CustomUser(AbstractUser):
    # fields

    objects = CustomUserManager()

答案 1 :(得分:0)

或者这样:

class CustomUser(User): objects = MyManager() class Meta(object): proxy=True