Skip to content

Instantly share code, notes, and snippets.

@ruchej
Last active March 24, 2022 20:40
Show Gist options
  • Save ruchej/7c305d84c64df91787860656256d425e to your computer and use it in GitHub Desktop.
Save ruchej/7c305d84c64df91787860656256d425e to your computer and use it in GitHub Desktop.
class A4ordLoginView(TemplateView, BaseFormView):
template_name = 'accounts/a4ord_login.html'
success_url = '/'
forms = {'A4ordLoginForm': A4ordLoginForm, 'A4ordPasswordForm': A4ordPasswordForm}
form_class = A4ordLoginForm
prev_form_class = form_class
form = None
def post(self, request, **kwargs):
self.form_class = self.forms[self.request.POST['form']]
self.form = self.form_class(self.request.POST)
self.prev_form_class = self.form_class
if self.form.is_valid():
self.form_class = self.form.cleaned_data['next_stage']
if self.form_class:
return self.get(request)
else:
return HttpResponseRedirect(self.get_success_url())
# if not self.form.is_valid():
# return self.form_invalid(self.form)
# username = self.form.cleaned_data.get('username')
return self.get(request)
def get_context_data(self, **kwargs):
context = super(A4ordLoginView, self).get_context_data(**kwargs)
errors = None
form_kwargs = {}
if self.request.method == 'POST' and self.prev_form_class == self.form_class:
form_kwargs = {
'data': self.request.POST,
}
if self.form:
errors = self.form.errors
if errors:
self.form._errors = errors
self.form = self.form_class(**form_kwargs)
context['form'] = self.form
return context
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment