6. Какие сигналы подает Django во время создания или обновления объекта?

Django предоставляет сигналы, которые позволяют подключаться к жизненному циклу создания и удаления объектов модели. Django предоставляет следующие сигналы

  • pre_init

  • post_init

  • pre_save

  • post_save

  • pre_delete

  • post_delete

Среди них наиболее часто используемыми сигналами являются pre_save и << 1 >>>. Мы рассмотрим их подробнее.

6.1. Сигналы против переопределения .save

Поскольку сигналы могут использоваться для таких же эффектов, как и переопределение .save, вопрос о том, какой из них использовать, является частым источником путаницы. Вот когда следует использовать which.

  • Если вы хотите, чтобы другие люди, например, сторонние приложения, переопределили или настроили поведение объекта save, вам следует создать свои собственные сигналы

  • Если вы подключаетесь к поведению save приложения, которое вы не контролируете, вам следует подключиться к post_save или << 2 >>>.

  • Если вы настраиваете поведение сохранения приложений, которыми вы управляете, вам следует переопределить save.

Рассмотрим пример модели UserToken. Этот класс используется для обеспечения аутентификации и должен создаваться каждый раз, когда создается User.

class UserToken(models.Model):
    token = models.CharField(max_length=64)

    # ...
Вернуться на верх