Некорректное отображение flash-сообщения в Django

Рейтинг: 0Ответов: 0Опубликовано: 17.07.2023

Проблема следующая: не отображается flash сообщение на сайте. При редактировании информации о пользователе должно появляться сообщение об успешном изменении информации. Но оно не появляется. вот сама View.py

@login_required
def edit_user(request, pk):
    user = get_object_or_404(User, pk=pk)
    if request.user != user:
        messages.error(request,
                       'У вас нет прав для изменения другого пользователя.',
                       extra_tags='danger')
        return redirect('user_list')

    user_form = UserEditForm(request.POST or None, instance=user)
    password_form = UserPasswordChangeForm(user, request.POST or None)

    if request.method == 'POST':
        messages.success(request, 'Пользователь успешно изменен')
        if password_form.is_valid() and password_form.cleaned_data[
            'old_password'] and password_form.cleaned_data['new_password1']:
            password_form.save()
            update_session_auth_hash(request, password_form.user)

        if user_form.is_valid():
            user_form.save()

        return redirect('user_list')

    context = {
        'user_form': user_form,
        'password_form': password_form,
    }

    return render(request, 'users/edit_user.html', context)

самое странное, что если убрать из условия

        if user_form.is_valid():
        user_form.save()

то все работает (естественно, логика не работает, но сообщение об успешном изменении появляется)

так как ошибка может быть более глубокой, я на всякий случай оставлю ссылку на репозиторий

Ответы

Ответов пока нет.