Я пытаюсь обновить электронную почту пользователя по умолчанию в django
Я пытаюсь обновить email модели пользователя по умолчанию с помощью Model Form и что-то напутал в своих представлениях. Как я могу изменить email на входные данные из формы.
<@login_required(login_url='home:login')
def ChangeEmailView(request):
if request.method == 'POST':
form = EmailChangingForm(request.POST)
if form.is_valid():
emailvalue = User.objects.get(pk=request.user.id)
form = EmailChangingForm(instance=emailvalue)
return redirect('home:profilesettings')
else:
form = EmailChangingForm()
context = {'form': form}
return render(request, 'home/email_settings.html', context)
Вот как можно обработать представление для обновления объекта базы данных из ModelForm :
@login_required(login_url='home:login')
def ChangeEmailView(request):
context = {}
if request.method == 'POST':
form = EmailChangingForm(request.POST)
if form.is_valid():
# Retrieve the user
user = User.objects.get(pk=request.user.id)
# Update the user email
user.email = form.cleaned_data['email']
# Save the updated user
user.save()
# Redirect to profile
return redirect('home:profilesettings')
else:
# It is a GET request
userInstance = User.objects.get(pk=request.user.id)
form = EmailChangingForm(instance=userInstance)
context = {'form': form}
return render(request, 'home/email_settings.html', context)