我正在编写的 Django 项目中的一个功能是发送时事通讯。我有一个模型Newsletter
和一个函数,send_newsletter
我已经注册了它来收听Newsletter
's 的post_save
信号。当通过管理界面保存时事通讯对象时,send_newsletter
检查是否created
为 True,如果是,则它实际发送邮件。
但是,出于显而易见的原因,编辑已经发送的时事通讯没有多大意义。有没有办法Newsletter
在保存对象后将其设为只读?
编辑:
我知道我可以重写save
对象的方法来引发错误,或者如果对象存在则什么都不做。但是,我没有看到这样做的意义。至于前者,我不知道在哪里捕获该错误以及如何向用户传达对象未保存的事实。至于后者,给用户错误的反馈(管理界面说保存成功)似乎不是一件好事。
我真正想要的是允许用户使用 Admin 界面编写时事通讯并发送,然后浏览已经发送的时事通讯。我希望管理界面在不可编辑的输入框中显示已发送时事通讯的数据,而无需“保存”按钮。或者,我希望“保存”按钮处于非活动状态。