views.py 892 B

1234567891011121314151617181920212223
  1. from django.contrib.auth.decorators import login_required
  2. from django.shortcuts import get_object_or_404, redirect, render
  3. from django.contrib import messages
  4. from .forms import UserForm, ProfileForm
  5. @login_required
  6. def profile(request):
  7. user_form = UserForm(request.POST or None, instance=request.user)
  8. for key in user_form.Meta.admin_only_fields:
  9. user_form.fields[key].disabled = True
  10. profile_form = ProfileForm(request.POST or None, instance=request.user.profile)
  11. forms = [user_form, profile_form]
  12. if request.method == 'POST' and all(form.is_valid() for form in forms):
  13. for form in forms:
  14. form.save()
  15. messages.success(request, 'Profil mis à jour avec succès !')
  16. return redirect('profile')
  17. return render(request, 'accounts/profile.html', {
  18. 'user_form': user_form,
  19. 'profile_form': profile_form,
  20. })