El form valid se ingresa cuando los datos que se han ingresado en el formulario son validos y correctos

se usa cuando se requiera haer alguna accion adespues del guardado de datos

views.py

class EmpleadoCreateView(CreateView):
    template_name = "persona/add.html"
    model = Empleado
    form_class = EmpleadoForm
    success_url = reverse_lazy('persona_app:emplados_admin')

    def form_valid(self, form):
        #logica del proceso
        empleado = form.save(commit=False)   # guardado en la bd
        empleado.full_name = empleado.first_name + ' ' + empleado.last_name
        empleado.save()   #guarda los cambios realizados creando el full_name
        return super(EmpleadoCreateView, self).form_valid(form)
    

forms.py

from django import forms

from .models import Empleado

class EmpleadoForm(forms.ModelForm):
    
    class Meta:
        model = Empleado
        fields = (
            'first_name',
            'last_name',
            'job',
            'departamento',
            'avatar',
            'habilidades',
        )
        widgets = {
            'habilidades': forms.CheckboxSelectMultiple()
        }

urls.py

from django.contrib import admin
from django.urls import path

from . import views

app_name = "persona_app"

urlpatterns = [
    path(
        'add-empleado/',
        views.EmpleadoCreateView.as_view(),
        name='empleado_add'
    ),
]

templates/persona/add.html


<div class="grid-container">
    <div class="grid-x">
        <h1 class="cell">Registrar empelado</h1>
        <form class="cell grid-x grid-margin-x" method="POST" enctype="multipart/form-data">{% csrf_token %}

            <div class="medium-6 cell">
                <label>Nombres:
                  {{form.first_name}}
                </label>
            </div>
            <div class="medium-6 cell">
                <label>Apellidos:
                  {{form.last_name}}
                </label>
            </div>
            <div class="medium-6 cell">
                <label>Trabajo:
                  {{form.job}}
                </label>
            </div>
            
            <div class="medium-12 cell">
                <button type="submit" class="button success">Guardar</button>
            </div>

        </form>
    </div>
</div>

templates/persona/success.html

<h1>Felicitaciones, se guardo correctamenet el empleado</h1>