Junior — Middle
Pode explicar o papel e o funcionamento do método pre_save no Django?
sobes.tech IA
Resposta da IA
No Django existe um método incorporado chamado pre_save, mas há um sinal pre_save que é chamado imediatamente antes de guardar um objeto do modelo na base de dados. Este sinal permite executar lógica adicional ou validação antes de os dados serem gravados.
Exemplo de uso do sinal pre_save:
from django.db.models.signals import pre_save
from django.dispatch import receiver
from myapp.models import MyModel
@receiver(pre_save, sender=MyModel)
def mymodel_pre_save(sender, instance, **kwargs):
# Por exemplo, atualizar automaticamente um campo antes de guardar
instance.updated_at = timezone.now()
Assim, pre_save ajuda a controlar o processo de gravação e a modificar o objeto antes de o registrar na base de dados.