Пароль не сохраняется из запроса на регистрацию в django-allauth

У меня есть приложение django, и я использую django-allauth для аутентификации пользователей.Сейчас у меня нет никаких сложных настроек, все, что я пытаюсь сделать, это позволить пользователю зарегистрироваться с помощью электронной почты и пароля и подтвердить свой адрес электронной почты, прежде чем он сможет войти в систему.

Прямо сейчас я тестирую API-интерфейсы через postman, и когда я нажимаю на конечную точку singup, все работает нормально: объект пользователя сохраняется в базе данных с соответствующими полями (адрес электронной почты, номер телефона, роль), но пароль не сохраняется, и из-за этого я не удается войти в систему или выполнить что-либо еще в процессе аутентификации.

Вот мои настройки:

Я использую обезглавленные API, а не обычные. Это мой settings.py


INSTALLED_APPS = [
....
    'allauth',
    'allauth.account',
    'allauth.headless',
    'allauth.usersessions',
]

AUTHENTICATION_BACKENDS = [
    # `allauth` specific authentication methods, such as login by email
    'allauth.account.auth_backends.AuthenticationBackend',
    # Needed to login by username in Django admin, regardless of `allauth`
    'django.contrib.auth.backends.ModelBackend'
]

#ALLAUTH SETTINGS
ACCOUNT_EMAIL_VERIFICATION = "mandatory"
ACCOUNT_EMAIL_VERIFICATION_BY_CODE_ENABLED = True
ACCOUNT_SIGNUP_FIELDS = [
    'email*',
    'phone*',
    'password*',
]
ACCOUNT_SIGNUP_FORM_CLASS = "user_onboarding.forms.CustomSignupForm"
ACCOUNT_ADAPTER = 'user_onboarding.adapter.CustomAccountAdapter'
ACCOUNT_LOGIN_METHODS = {"email"}
HEADLESS_ONLY = True
HEADLESS_FRONTEND_URLS = {
    "account_confirm_email": "/account/verify-email/{key}",
    "account_reset_password": "/account/password/reset",
    "account_reset_password_from_key": "/account/password/reset/key/{key}",
    "account_signup": "/account/signup",
    "socialaccount_login_error": "/account/provider/callback",
}

ACCOUNT_PHONE_VERIFICATION_ENABLED = False

form.py

class CustomSignupForm(forms.Form):
    role = forms.CharField(max_length=50)
    def signup(self, request, user):
        user.role = self.cleaned_data['role']
        user.save()

adapter.py

from allauth.account.adapter import DefaultAccountAdapter

class CustomAccountAdapter(DefaultAccountAdapter):
    def set_phone(self, user, phone: str, verified: bool):
        # map the incoming "phone" value onto your CustomUser.phone_number
        user.phone_number = phone
        user.save()
    
    def get_phone(self, user):
        if user.phone_number:
            return user.phone_number, True
        return None

urls.py

urlpatterns = [
    path('list-urls/', list_urls, name='list_urls'),
    path("_allauth/", include("allauth.headless.urls")),
....
]

и это запрос на регистрацию, который я отправляю

curl --location 'http://0.0.0.0:8080/api/_allauth/browser/v1/auth/signup' \
--header 'X-CSRFToken: nALgtSOEx2J0neAIzw2BFASadoM5FwN9' \
--header 'Content-Type: application/json' \
--header 'Cookie: csrftoken=nALgtSOEx2J0neAIzw2BFASadoM5FwN9; sessionid=er7b190l2n04rvif873t2w2x8rkj3i5o' \
--data-raw '{
    "email": "umansafor@gmail.com",
    "password": "passabcd1",
    "phone": "+911234567899",
    "role": "USERS"
}'

я получаю 401 неавторизованный ответ на этот запрос, который ожидался, но в базе данных пароль пользователя не сохраняется, все остальные поля сохраняются должным образом

p.s. это моя пользовательская модель

class CustomUser(AbstractBaseUser, PermissionsMixin):
    ROLE_CHOICES = [
        ("USERS", "Users"),
        ("USER_KIN", "User Kin"),
        ("CARE_MANAGER", "Care Manager"),
        ("ADMIN", "Admin"),
        ("ENG_TEAM", "Engineering Team"),
    ]
    phone_number = models.CharField(max_length=15, unique=True, blank=True, null=True)
    email = models.EmailField(unique=True, null=True, blank=True)
    username = models.CharField(max_length=50, unique=True)
    role = models.CharField(max_length=20, choices=ROLE_CHOICES, default="USERS")
    is_active = models.BooleanField(default=True)
    is_staff = models.BooleanField(default=False)
    objects = CustomUserManager()
    USERNAME_FIELD = "email"
    REQUIRED_FIELDS = []
    def __str__(self):
        return self.username
Вернуться на верх