Sobes.tech
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.