6. Какие сигналы подает Django во время создания или обновления объекта?¶
Django предоставляет сигналы, которые позволяют подключаться к жизненному циклу создания и удаления объектов модели. Django предоставляет следующие сигналы
pre_initpost_initpre_savepost_savepre_deletepost_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)
# ...