Django - Allauth не использует пользовательскую форму регистрации

Я работаю с Django-Allauth и React в качестве ИП. Я добавил параметр name для созданного мной пользовательского пользователя, переопределил форму SignupForm в Forms.py, чтобы сохранить ее, и, как сказано в документации, изменил settings.py, чтобы в нем было

ACCOUNT_FORMS = {'signup': 'XXXX.forms.CustomSignupForm'}

Но форма не инициируется при регистрации - я добавил отпечатки, которые не проходят. Пользователь создается - но, вероятно, с формой по умолчанию, и не добавляет дополнительный параметр, который я добавил. Я проверил, и фронтенд отправляет полезную нагрузку правильно.

У меня есть это в файле forms.py

class CustomUserCreationForm(UserCreationForm):
    name = forms.CharField(max_length=30, required=True, help_text='Enter your name.')

    class Meta:
        model = CustomUser
        fields = ("email", "name")


class CustomSignupForm(SignupForm):
    name = forms.CharField(max_length=40, required=True, help_text='Enter your name.')
    
    def __init__(self, *args, **kwargs):
        print("CustomSignupForm is being initialized")
        super().__init__(*args, **kwargs)
        
    def save(self, request):
        print("im working")
        user = super().save(request)
        user.name = self.cleaned_data['name']
        user.save()
        return user 

urls.py

urlpatterns = [
    path("admin/", admin.site.urls),
    path('', include('XXXX.urls')),
    path('accounts/', include('allauth.urls')),
    path("_allauth/", include("allauth.headless.urls")),
]

Я также попробовал использовать ACCOUNT_ADAPTER в настройках, и вот как выглядит адаптер в adapters.py

class CustomAccountAdapter(DefaultAccountAdapter):
#     def get_signup_form_class(self):
#         return CustomSignupForm

Но он не использовал форму.

Также пытался редактировать CustomUserManager, но форма находится за шаг до него, если я не ошибаюсь, так что это тоже не помогло. Я пробовал искать везде, и в документации, но не смог найти решение или подсказку. Спасибо большое!

Важно помнить, что не существует отображения форм с головками на полезную нагрузку без головок. Например, хотя необходимость дважды вводить пароль имеет смысл в среде с головной формой, это бессмысленно с точки зрения API. В результате, головные формы, которые могут быть переопределены с помощью ACCOUNT_FORMS не играют никакой роли в безголовом окружении.

Вместо того чтобы переопределять всю форму регистрации через ACCOUNT_FORMS, предоставьте ACCOUNT_SIGNUP_FORM_CLASS, которая вытекает из forms.Form и перечисляет только дополнительные поля, которые вам нужны. Эти поля будут автоматически отображаться в возглавляемой форме регистрации и будут автоматически проверяться при отправке полезной нагрузки в конечной точке регистрации.

Вернуться на верх