Автоматическое заполнение имени пользователя при добавлении пользователя в Admin

Я использую django-allauth со следующими настройками:

ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_USERNAME_REQUIRED = False
ACCOUNT_SESSION_REMEMBER = True
ACCOUNT_AUTHENTICATION_METHOD = 'email'
ACCOUNT_UNIQUE_EMAIL = True

Когда новый пользователь регистрируется, username заполняется автоматически на основе адреса электронной почты пользователя. Однако этого не происходит, когда я добавляю пользователя с помощью Admin. Как мне это сделать?

Вот соответствующий код, который у меня есть на данный момент:

class CustomUser(AbstractUser):
    USERNAME_FIELD = 'email'
    REQUIRED_FIELDS = ['first_name']

    def __str__(self):
        return self.username if self.username else self.email

# https://stackoverflow.com/a/15603839/2725810
CustomUser._meta.get_field('email')._unique = True
class CustomUserAdmin(UserAdmin):
    model = CustomUser
    
    # Adding to Add User form first_name and email, removing username
    add_fieldsets = \
        (
            (
                (None, {'fields': ('first_name', 'email')}),
            ) 
        ) + \
        (
            (
                (None, {'fields': 
                        UserAdmin.add_fieldsets[0][1]['fields'][1:]}),
            )
        )
    list_display = ['first_name', 'email']
    save_as = True

admin.site.register(CustomUser, CustomUserAdmin)
Вернуться на верх