Изменение порядка полей UserCreationFrom из django.contrib.auth и allauth

Я пытаюсь изменить порядок полей в форме регистрации пользователя, используя django.contrib.auth. Однако, похоже, что некоторые поля (имя пользователя, электронная почта и пароль) я не могу переупорядочить, что, как я думаю, может быть связано с django allauth.

settings.py

ACCOUNT_SIGNUP_FORM_CLASS = 'users.forms.UserCreationForm'

forms.py

class UserCreationForm(UserCreationForm):

    error_message = UserCreationForm.error_messages.update(
        {
            "duplicate_username": _(
                "This username has already been taken."
            )
        }
    )
    first_name = forms.CharField(max_length=12, min_length=4, required=True,
                                widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'First Name'}))
    last_name = forms.CharField(max_length=12, min_length=4, required=True,
                               widget=(forms.TextInput(attrs={'class': 'form-control'})))
    email = forms.EmailField(max_length=50, help_text='Required. Inform a valid email address.',
                             widget=(forms.TextInput(attrs={'class': 'form-control'})))
    password1 = forms.CharField(label=_('Password'),
                                widget=(forms.PasswordInput(attrs={'class': 'form-control'})),
                                help_text=password_validation.password_validators_help_text_html())
    password2 = forms.CharField(label=_('Password Confirmation'), widget=forms.PasswordInput(attrs={'class': 'form-control'}),
                                help_text=_('Just Enter the same password, for confirmation'))
    username = forms.CharField(
        label=_('Username'),
        max_length=150,
        help_text=_('Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.'),
        validators=[username_validator],
        error_messages={'unique': _("A user with that username already exists.")},
        widget=forms.TextInput(attrs={'class': 'form-control'})
    )

    class Meta(UserCreationForm.Meta):
        model = User
        fields = ('username', 'first_name', 'last_name', 'email', 'password1', 'password2',)

    def clean_username(self):
        username = self.cleaned_data["username"]

        try:
            User.objects.get(username=username)
        except User.DoesNotExist:
            return username

        raise ValidationError(
            self.error_messages["duplicate_username"]
        )

Я могу изменить порядок полей имени и фамилии, но они всегда располагаются ниже имени пользователя, электронной почты и пароля.

Вы можете указать порядок структурирования полей с помощью field_order.

Подобно этому:

class UserCreationForm(UserCreationForm):
    
    [.. fields ..]

    class Meta(UserCreationForm.Meta):
        model = User
        fields = ('username', 'first_name', 'last_name', 'email', 'password1', 'password2',)

    field_order = ['username', 'email', 'password1', 'password2','first_name', 'last_name']

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