Ask for password confirmation conditionally (processing different forms depending of status)

I’ve reading this that it’s similar to what I want to accomplish, but instead I want to do it on POST and if the form has values that could be disruptive, while keeping track of everything that was sent in the form data. My working theory is something like this:

class BusinessView(FormView):
    ...
    def form_valid(self, form):
        cleaned_data = form.cleaned_data
        user = cleaned_data.get("user")
        if service.user_safe_to_manager(user):
            return redirect(user)
        if self.session.get("user_to_promote", None):
            self.session['user_to_promote'] = user
        if self.session.get("password_confirmed"):
            service.promote_to_manager(user=user, by_user=self.request.user)
            return redirect(user)
        return views.ConfirmPassword.as_view()

Where views.ConfirmPassword is the same theory of the linked example but using sessions to share data. Now, I’m pretty sure I should be overriding my BusinessView somewhere so it passes the POST data to the password view and then returns back the BusinessView form_valid() function.

I’m sure this is doable, somehow, but I’m having hard time warping my head with the layers that I have to deal with, since I have to override post() when processing the password form. Should I instead forget about this and go for a simpler function view?