Как правило, чтобы отправить электронное письмо при создании объекта, я переопределил бы метод сохранения:
def save(self, *args, **kwargs):
send_email(context)
return super().save(*args, **kwargs)
Однако теперь мне нужен контекст, содержащий атрибут объекта, который не может бытьизвестный до сохранения объекта, а именно URL объекта File, связанного с объектом модели.
Я знаю, что это можно сделать с помощью сигнала post_save, но документы создают впечатление, что это лучше всего использовать, когдаразным моделям нужен доступ к такой информации.У меня складывается впечатление, что не рекомендуется использовать его в одной модели:
Я пробовал это:
foo = super().save(*args, **kwargs)
send_email(foo.document.url)
return foo
Но foo
, похоже, None
.