def edit(request): #create user profile status = '' if request.method == 'POST': if 'email' in request.POST: email = request.POST['email'] username = request.POST['username'] password = request.POST['password'] lastname = request.POST['lastname'] firstname = request.POST['firstname'] middlename = request.POST['middlename'] status = request.POST.get('status','') education = request.POST.get('education','') year = request.POST.get('year','1') course = request.POST.get('course','1') user = User.objects.create_user(username, email, password) user.first_name = firstname user.last_name = lastname user.save() user = authenticate(username=username, password=password) if user is not None: if user.is_active: login(request, user) profile = UserProfile() profile.user = user profile.middle_name = middlename profile.status = status profile.education = education profile.grade = course profile.year = year profile.save() form = ImageUploadForm(request.POST, request.FILES) if form.is_valid(): # get profile from user if not request.user.user_profile.all(): profile = UserProfile() profile.user = request.user profile.save() m = request.user.user_profile.all()[0] status = m.status m.photo = form.cleaned_data['image'] m.save() if 'about' in request.POST or 'teaching' in request.POST or 'science' in request.POST or 'publications' in request.POST: if not request.user.user_profile.all(): profile = UserProfile() profile.user = request.user profile.save() m = request.user.user_profile.all()[0] if 'about' in request.POST: m.about = request.POST.get('about','') if 'teaching' in request.POST: m.teaching = request.POST.get('teaching','') if 'science' in request.POST: m.science = request.POST.get('science','') if 'publications' in request.POST: m.publications = request.POST.get('publications','') m.save() context = get_context(request) context['type'] = status return render(request, 'main/edit.html', context) elif request.user.is_authenticated(): context = get_context(request) if not request.user.user_profile.all(): profile = UserProfile() profile.user = request.user profile.save() context['type'] = request.user.user_profile.all()[0].status return render(request, 'main/edit.html', context) return HttpResponseForbidden('allowed only registered users or via POST')