def create_user(request): if request.method == 'POST': form = UserForm(request.POST) profile = ProfileForm(request.POST) if form.is_valid() and profile.is_valid(): shops = profile.cleaned_data['shops'] #save form user_data = form.save(commit=False) user_data.save() #save profile form profile_data = profile.save(commit=False) profile_data.creator = request.user profile_data.updater = request.user profile_data.user = user_data profile_data.current_shop = shops[0] profile_data.save() profile.save_m2m() request.session['message'] = 'User Created Successfully' return HttpResponseRedirect( reverse('users:view_user', kwargs={'pk': profile_data.pk})) else: errors = generate_form_errors(form, formset=False) errors += generate_form_errors(profile, formset=False) context = { 'form': form, 'profile': profile, 'title': 'Create User', 'message': 'Form Validation Error', "errors": errors, 'url': reverse('users:create_user'), "users_active": "active" } return render(request, 'users/entry_user.html', context) else: form = UserForm() profile = ProfileForm() context = { "form": form, "profile": profile, "title": "Create User", 'url': reverse('users:create_user'), "users_active": "active" } return render(request, 'users/entry_user.html', context)
def edit_user(request, pk): instance = get_object_or_404( Profile.objects.filter(pk=pk, is_deleted=False)) if request.method == 'POST': form = EditUserForm(request.POST, instance=instance.user) profile = ProfileForm(request.POST, instance=instance) if form.is_valid() and profile.is_valid(): #save auth user user_data = form.save(commit=False) user_data.save() #save profile profile_data = profile.save(commit=False) profile_data.updater = request.user profile_data.date_updated = datetime.datetime.now() profile_data.save() profile.save_m2m() request.session['message'] = 'User Successfully Edited' return HttpResponseRedirect( reverse('users:view_user', kwargs={'pk': instance.pk})) else: errors = generate_form_errors(form, formset=False) errors += generate_form_errors(profile, formset=False) context = { 'message': 'Form Validation Error', 'title': 'Edit Form', 'form': form, 'profile': profile, "errors": errors, "users_active": "active", 'url': reverse('users:edit_user', kwargs={'pk': instance.pk}), } return render(request, 'users/entry_user.html', context) else: form = EditUserForm(instance=instance.user) profile = ProfileForm(instance=instance) context = { 'title': 'Edit User' + instance.user.username, 'form': form, 'profile': profile, 'instance': instance, 'url': reverse('users:edit_user', kwargs={'pk': instance.pk}), "users_active": "active" } return render(request, 'users/entry_user.html', context)