Нема описа

views.py 2.3KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. # views.py
  2. from django.contrib.auth import authenticate, login, logout
  3. from django.shortcuts import render, redirect
  4. from .forms import CustomLoginForm, CustomUserCreationForm, UserProfileForm
  5. from .models import UserProfile
  6. from django.contrib.auth.decorators import login_required
  7. from django.contrib import messages
  8. def login_view(request):
  9. if request.method == "POST":
  10. form = CustomLoginForm(data=request.POST)
  11. if form.is_valid():
  12. user = form.get_user()
  13. login(request, user)
  14. return redirect('dashboard:index') # Redirect to your dashboard
  15. else:
  16. form = CustomLoginForm()
  17. return render(request, 'auth/login.html', {'form': form, 'hide_sidebar': True})
  18. def register_view(request):
  19. if request.method == "POST":
  20. form = CustomUserCreationForm(request.POST)
  21. if form.is_valid():
  22. user = form.save()
  23. login(request, user) # Log the user in after creation
  24. return redirect('dashboard:index') # Redirect to your dashboard
  25. else:
  26. form = CustomUserCreationForm()
  27. return render(request, 'auth/register.html', {'form': form, 'hide_sidebar': True})
  28. def logout_view(request):
  29. logout(request) # Logs out the user
  30. return redirect('sysadmin:login') # Redirect to the login page after logout
  31. @login_required
  32. def profile_view(request):
  33. try:
  34. # Get the profile for the current user
  35. profile = request.user.profile
  36. except UserProfile.DoesNotExist:
  37. # Create a profile if it doesn't exist
  38. profile = UserProfile.objects.create(user=request.user)
  39. if request.method == "POST":
  40. form = UserProfileForm(request.POST, request.FILES, instance=profile)
  41. user = request.user
  42. user.first_name = request.POST.get('first_name', user.first_name)
  43. user.last_name = request.POST.get('last_name', user.last_name)
  44. if form.is_valid():
  45. form.save()
  46. user.save()
  47. messages.success(request, "Profile Updated")
  48. return redirect('sysadmin:profile') # Redirect to the profile page after saving
  49. else:
  50. messages.error(request, form.errors)
  51. else:
  52. form = UserProfileForm(instance=profile)
  53. return render(request, 'sysadmin/profile.html', {'form': form})