37 lines
1.3 KiB
Python
37 lines
1.3 KiB
Python
from django.shortcuts import render, redirect, get_object_or_404
|
|
from django.contrib.auth.decorators import login_required
|
|
from django.contrib.auth.forms import PasswordChangeForm
|
|
from django.contrib import messages
|
|
|
|
from accounts.forms import *
|
|
|
|
|
|
@login_required
|
|
def profile(request):
|
|
profileform = None
|
|
passwordform = None
|
|
|
|
if request.method == 'POST':
|
|
if 'update-profile' in request.POST:
|
|
profileform = ProfileForm(request.POST, instance=request.user)
|
|
if profileform.is_valid():
|
|
profileform.save()
|
|
messages.success(request, 'Profile updated successfully.')
|
|
return redirect('profile')
|
|
elif 'update-password' in request.POST:
|
|
passwordform = PasswordChangeForm(user=request.user, data=request.POST)
|
|
if passwordform.is_valid():
|
|
passwordform.save()
|
|
messages.success(request, 'Password updated successfully.')
|
|
return redirect('profile')
|
|
|
|
if not profileform:
|
|
profileform = ProfileForm(None, instance=request.user)
|
|
if not passwordform:
|
|
passwordform = PasswordChangeForm(None)
|
|
|
|
return render(request, 'accounts/profile.html', {
|
|
'profileform': profileform,
|
|
'passwordform': passwordform,
|
|
})
|