Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class AccountProfilesView(LoginRequiredMixin, UpdateView):
- # All users can access this view
- model = get_user_model()
- #success_url = reverse_lazy('dashboard')
- template_name = 'accounts/profile_form.html'
- fields = '__all__'
- def get_context_data(self, **kwargs):
- context = super(AccountProfilesView, self).get_context_data(**kwargs)
- user = self.request.user
- if not self.request.POST:
- if user.is_student:
- profile = user.get_student_profile()
- context['userprofile'] = profile
- context['form_student'] = forms.StudentProfileForm()
- elif user.is_professor:
- profile = user.get_professor_profile()
- context['userprofile'] = profile
- context['form_professor'] = forms.ProfessorProfileForm()
- elif user.is_executive:
- profile = user.get_executive_profile()
- context['userprofile'] = profile
- context['form_executive'] = forms.ExecutiveProfileForm()
- return context
- def post(self, request, *args, **kwargs):
- self.object = self.get_object()
- user = self.request.user
- if user.is_student:
- context['form_student'] = forms.StudentProfileForm(self.request.POST)
- elif user.is_professor:
- context['form_professor'] = forms.ProfessorProfileForm(self.request.POST)
- elif user.is_executive:
- context['form_executive'] = forms.ExecutiveProfileForm(self.request.POST)
- return super(AccountProfilesView, self).post(request, *args, **kwargs)
- def form_valid(self, form):
- context = self.get_context_data(form=form)
- user = self.request.user
- user = form.save()
- if user.is_student:
- student = context['form_student'].save(commit=False)
- student.user = user
- student.save()
- elif user.is_professor:
- professor = context['form_professor'].save(commit=False)
- professor.user = user
- professor.save()
- elif user.is_executive:
- executive = context['form_executive'].save(commit=False)
- executive.user = user
- executive.save()
- return super(AccountProfilesView, self).form_valid(form)
- def get_success_url(self):
- return reverse('dashboard')
Advertisement
Add Comment
Please, Sign In to add comment