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

use*_*632 5 django django-users

我创建了User继承自AbstractUserin 的自定义模型Django

class ChachaUser(AbstractUser):
    birth = models.DateField()
    gender = models.CharField(max_length=1, choices=GENDER_CHOICES)
Run Code Online (Sandbox Code Playgroud)

和我的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')
Run Code Online (Sandbox Code Playgroud)

但是我想使用 创建一个超级用户python manage.py createsuperuser,我也必须实现CustomUserManager

有什么想法或例子吗?

Sie*_*yer 5

您对UserManager(代码)感兴趣。

例子:

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

class CustomUserManager(UserManager):
    # your methods

class CustomUser(AbstractUser):
    # fields

    objects = CustomUserManager()
Run Code Online (Sandbox Code Playgroud)