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.