def usersignup(request): form = UserSignup() profile_form = ProfileForm() if request.method == 'POST': form = UserSignup(request.POST) profile_form = ProfileForm(request.POST, request.FILES) if form.is_valid() and profile_form.is_valid(): user = form.save() profile = profile_form.save(commit=False) profile.owner = user profile.save() profile_form.save_m2m() user.set_password(user.password) user.save() login(request, user) messages.success(request, "Successfully signed up!") return redirect("profile", pk=profile.pk) messages.error(request, form.errors) messages.error(request, profile_form.errors) return redirect("signup") context = { "form": form, 'profile_form': profile_form, } return render(request, 'signup.html', context)
def create_profile(request): """ Create a profile for the current User, if one doesn't already exist. If the User already has a profile, as determined by `request.user.profile`, a redirect will be issued to the `profiles.views.edit_profile` view. If no profile model has been specified in the `AUTH_PROFILE_MODULE` setting, `django.contrib.auth.models.SiteProfileNotAvailable` will be raised. """ try: profile_obj = request.user.profile return redirect("profiles_edit_profile") except ObjectDoesNotExist: pass form = ProfileForm(request.POST or None, request.FILES or None, request=request) if form.is_valid(): profile_obj = form.save(commit=False) profile_obj.user = request.user profile_obj.save() if hasattr(form, "save_m2m"): form.save_m2m() return redirect("profiles_my") return {"form": form}