def splash(request): new_student = request.user.student if request.method == "POST": skillform = SkillForm(request.POST or None) if 'new_skill' in request.body: if skillform.is_valid(): skill_text = skillform.cleaned_data['skill_text'] new_skill = Skill.objects.get_or_create(skill_text__iexact=skill_text,defaults={'skill_text':skill_text,'creator':request.user})[0] new_skill.save() userform = UserForm(request.POST or None) studentform = StudentForm(request.POST or None) skill_ids = [] for skill in Skill.objects.filter(student=new_student): skill_ids.append(skill.id) for skill_id in request.POST.getlist('skills'): skill_ids.append(skill_id) skill_ids.append(new_skill.id) studentform = StudentForm( initial = {'year_in_school': new_student.year_in_school, 'school': new_student.school, 'skills': skill_ids }, ) studentform.fields['skills'].queryset = Skill.objects.filter(Q(approved=True) | Q(creator=request.user)) skillform = SkillForm() else: userform = UserForm(request.POST or None, instance=request.user) if userform.is_valid(): userlink = userform.save(commit=False) userlink.save() studentform = StudentForm(request.POST or None, instance=new_student) studentform.fields['skills'].queryset = Skill.objects.filter(Q(approved=True) | Q(creator=request.user)) if studentform.is_valid(): link = studentform.save(commit=False) link.save() studentform.save_m2m() messages.success(request, 'You\'re all set!') else: userform = UserForm( request.POST or None, initial = {'first_name': request.user.first_name, 'last_name': request.user.last_name } ) skill_ids = [] for skill in Skill.objects.filter(student=new_student): skill_ids.append(skill.id) studentform = StudentForm( request.POST or None, initial = {'year_in_school': new_student.year_in_school, 'school': new_student.school, 'skills': skill_ids } ) studentform.fields['skills'].queryset = Skill.objects.filter(Q(approved=True) | Q(creator=request.user)) skillform = SkillForm( request.POST or None ) return render(request, 'splashpage/base_loggedin.html',{'studentform': studentform,'userform':userform,'skillform':skillform})