Сигналы Django для новой записи

Я использую сигнал Django post_save для отправки писем пользователям каждый раз, когда новая статья добавляется на сайт. Тем не менее, пользователи по-прежнему получают новые письма, когда я использую метод save() для уже созданных статей. Как можно получать электронные письма только при добавлении новой записи?

Заранее спасибо

Ответ 1

Сигнал post_save получает логический аргумент created, который указывает, был ли сохранен сохраненный instance.

def my_callback(sender, **kwargs):
    if kwargs['created']:
        print('Instance is new')

Ответ 3

Проверка на instance.id - хороший способ определить, является ли экземпляр "новым". Это работает, только если вы используете идентификаторы, которые автоматически генерируются вашей базой данных.