Я пытаюсь обновить электронную почту пользователя по умолчанию в 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)
Вернуться на верх