Одна из функциональных возможностей проекта Django, который я пишу, - отправка бюллетеня. У меня есть модель Newsletter
и функция send_newsletter
, которую я зарегистрировал для прослушивания сигнала Newsletter
post_save
. Когда объект новостной рассылки сохраняется через интерфейс администратора, send_newsletter
проверяет, является ли created
Истиной, и если да, он действительно отправляет почту.
Однако, по понятным причинам нет смысла редактировать уже отправленный бюллетень. Есть ли способ сделать объект Newsletter
доступным только для чтения после его сохранения?
Edit:
Я знаю, что могу переопределить метод save
объекта, чтобы вызвать ошибку или ничего не делать, если объект существовал. Однако я не вижу смысла в этом. Что касается первого, я не знаю, где поймать эту ошибку и как сообщить пользователю, что объект не был сохранен. Что касается последнего, то предоставление ложной обратной связи с пользователем (интерфейс администратора говорит, что сохранение выполнено успешно) не похоже на хорошую вещь.
Что я действительно хочу, так это позволить пользователю использовать интерфейс администратора, чтобы написать информационный бюллетень и отправить его, а затем просмотреть уже отправленные информационные бюллетени. Я хотел бы, чтобы интерфейс администратора отображал данные для отправленных информационных бюллетеней в не редактируемом поле ввода без кнопки «Сохранить». Как вариант, я бы хотел, чтобы кнопка «Сохранить» была неактивной.