Using django form wizard with allauth

Currently my user sign up process is implemented with allauth. Does anyone have any experience of how to make this a multipage process e.g. with form wizard from formtools? (stored at users/

class UserCreationForm1(forms.UserCreationForm):

    error_message = forms.UserCreationForm.error_messages.update(
            "duplicate_username": _(
                "This username has already been taken."

    username = CharField(label='User Name',
                        widget=TextInput(attrs={'placeholder': 'User Name'})

    class Meta(forms.UserCreationForm.Meta):
        model = User
        fields = ['username', 'email', 'title', 'first_name', 'last_name', 'country', ]
        field_order = ['username', 'email', 'title', 'first_name', 'last_name', 'country', ]
    def clean_username(self):
        username = self.cleaned_data["username"]
        if self.instance.username == username:
            return username
        except User.DoesNotExist:
            return username
        raise ValidationError(

class UserCreationForm2(forms.UserCreationForm):

    class Meta(forms.UserCreationForm.Meta):
        model = User
        fields = ['occupation', 'password1', 'password2', 'terms']
        field_order = ['occupation', 'password1', 'password2', 'terms']

    def clean_terms(self):
        is_filled = self.cleaned_data['terms']
        if not is_filled:
            raise forms.ValidationError('This field is required')
        return is_filled  

For the i then have

SIGNUP_FORMS = [('0', UserCreationForm),
                ('1', UserCreationForm2)]

TEMPLATES = {'0': 'account/signup_1.html',
             '1': 'account/signup_2.html'}

class SignupWizard(SessionWizardView):
    def get_template_names(self):
        return [TEMPLATES[self.steps.current]]

    def done(self, form_list, **kwargs):

        for form in form_list:
            if isinstance(form, UserCreationForm):
                user =

            elif isinstance(form, UserCreationForm2):
                userprofile =
                user = self.request.user
                userprofile.user = user
        return HttpResponseRedirect(settings.LOGIN_REDIRECT_URL)

What I find though is that after completing the first form and clicking to continue to the second the user is redirected to the inbuilt allauth login: at accounts/signup/

Does anyone have any advice?

Back to Top