Sobes.tech
Back to questions
Junior — Middle
63

Можете объяснить роль и работу метода pre_save в Django?

Companies where asked
Оптимакрос

Answer from AI

sobes.tech AI

В Django нет встроенного метода с названием pre_save, но есть сигнал pre_save, который вызывается непосредственно перед сохранением объекта модели в базу данных. Этот сигнал позволяет выполнить дополнительную логику или валидацию до того, как данные будут записаны.

Пример использования сигнала 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):
    # Например, автоматически обновить поле перед сохранением
    instance.updated_at = timezone.now()

Таким образом, pre_save помогает контролировать процесс сохранения и модифицировать объект перед записью в базу.