2013-06-03 150 views
0

嗨我很新的Django,我試圖創建一個應用程序與項目模型和任務模型。每個項目都有一個或多個任務。我想要做的是添加一個TaskHistory模型,並且每個任務都有一個或多個taskhistory。每當我改變我的任務中的某些東西(因爲這將是我需要編輯的東西),我想創建一個新的關聯的TaskHistory。可能嗎 ?從模型A編輯對象時從模型B創建一個對象?

回答

1

這是可能的,但有可能在應用程序/視圖層編碼,而不是直接在Django模型中編碼。您嘗試的內容似乎與作爲標準django.contrib.admin應用程序的一部分而創建的日誌條目非常匹配,因此您應該在此應用程序中尋找想法。每次在管理界面中更新,創建或刪除對象時,django.contrib.admin都會記錄一個表格到LogEntry表格。

您的應用程序很可能需要將更改存儲在模型內容中,例如任務描述中的更改,而不僅僅是是否創建了任務。爲了實現這一點,您可能需要當前任務對象和更新的任務詳細信息才能創建一個TaskHistory對象。

每個視圖,其能夠修改任務的還將包括其中可以創建一個TaskHistory對象,並且節省了更新的/新的TaskTaskHistory對象作爲獨立模型對象,可能包裝在一個數據庫級事務做出邏輯這些變化出現在原子上。

+0

感謝您的回答,但是我發現如何使用信號來表達我的意思(例如post_save信號)。 – Nepho