Evitar la eliminación en el modelo Django

Tengo una configuración como esta (simplificada para esta pregunta):

class Employee(models.Model):
    name = models.CharField(name, unique=True)

class Project(models.Model):
    name = models.CharField(name, unique=True)
    employees = models.ManyToManyField(Employee)

Cuando un Empleado está a punto de ser eliminado, quiero verificar si está conectado o no a algún proyecto. Si es así, la eliminación debería ser imposible.

Sé sobre señales y cómo trabajarlas. Me puedo conectar a lapre_delete señal, y hacer que arroje una excepción comoValidationError. Esto evita la eliminación, pero no se maneja con gracia por formularios y demás.

Esto parece una situación en la que otros se habrán encontrado. Espero que alguien pueda señalar una solución más elegante.

Respuestas a la pregunta(6)

Su respuesta a la pregunta