在w project項目中,我有一個用於公告的NewsSnippet
片段。從頁面更新創建的W distinguish辨別頁面
此外(稍微簡化),我有一個頁面模型CoursePage
其中包含提供的課程的說明。
CoursePage
的子女來自型號Course
。此模型只包含start_date
和end_date
和status
(可用或已預訂)以及其他一些我認爲對此問題並不重要的模型。
添加新Course
到CoursePage
意味着有CoursePage
類型中的start_date
新的課程。 Course
模型源自AbstractForm
,並允許在相應的日期註冊課程。
當創建新的Course
時,我想自動發佈(即創建一個NewsSnippet
)。但是,如果Course
剛剛更新,我不想要創建新的NewsSnippet
。此外,我只希望NewsSnippet
在Course
頁面發佈時創建,而不是保存爲草稿。
我認爲這可以在通過base_class_form = Myform
使用的course
模型形式的save
方法要麼完成了,但是,我不知道如何區分「發佈」從「保存爲草稿」那裏。我也考慮過在文檔中使用信號,並且page_published
看起來很有前途,但是文檔說:「當修訂版被設置爲發佈時,該信號從PageRevision
發出。」但是,我不想公佈每一次修訂,只是第一次創建。有沒有辦法確定page_published
是否是Page
首次被解僱?
此外(這可能是第二個問題),有沒有很好的和容易理解的例子如何使用您的應用程序的ready()
方法實現信號?
當一個頁面被保存爲修訂版本時,該鉤子也被調用。我可能會在頁面模型和'has_unpublished_changes'中擺弄一個標誌。無論是在你提到的鉤子還是在'page_published'信號中。 –