私が書いている Django プロジェクトの機能の 1 つは、ニュースレターの送信です。の信号をリッスンするために登録したモデルNewsletter
と関数があります。ニュースレター オブジェクトが管理インターフェイス経由で保存されると、が True かどうかをチェックし、はいの場合は実際にメールを送信します。send_newsletter
Newsletter
post_save
send_newsletter
created
ただし、明らかな理由から、既に送信されたニュースレターを編集することはあまり意味がありません。Newsletter
保存したオブジェクトを読み取り専用にする方法はありますか?
編集:
オブジェクトのメソッドをオーバーライドしsave
てエラーを発生させたり、オブジェクトが存在する場合は何もしないことがわかっています。しかし、私はそれをする意味がわかりません。前者に関しては、そのエラーをどこでキャッチするか、オブジェクトが保存されていないという事実をユーザーに伝える方法がわかりません。後者に関しては、ユーザーに誤ったフィードバック (保存が成功したことを示す管理者インターフェース) を与えることは良いことのようには思えません。
私が本当に望んでいるのは、ユーザーが管理インターフェイスを使用してニュースレターを作成して送信し、送信済みのニュースレターを閲覧できるようにすることです。「保存」ボタンを使用せずに、編集不可の入力ボックスに送信済みニュースレターのデータを表示する管理インターフェイスを希望します。または、「保存」ボタンを非アクティブにしたいと思います。