Impedir exclusão no modelo do Django
Eu tenho uma configuração como esta (simplificada para esta pergunta):
class Employee(models.Model):
name = models.CharField(name, unique=True)
class Project(models.Model):
name = models.CharField(name, unique=True)
employees = models.ManyToManyField(Employee)
Quando um funcionário está prestes a ser excluído, quero verificar se ele está ou não conectado a algum projeto. Nesse caso, a exclusão deve ser impossível.
Eu sei sobre sinais e como trabalhar com eles. Eu posso me conectar aopre_delete
sinal e faça uma exceção comoValidationError
. Isso evita a exclusão, mas não é manipulado normalmente por formulários e outros.
Parece uma situação em que outros terão se deparado. Espero que alguém possa apontar uma solução mais elegante.