python - Django中類似事務的實現(xiàn)方法?
問題描述
class Category(models.Model): c_name = models.CharField(max_length=100)class Item(models.Model): '''外鍵關聯(lián)到Category''' i_name = models.CharField(max_length=100) category = models.ForeignKey(’Category’, related_name=’items’, null=True, blank=True)
表結構是這樣, 要實現(xiàn)在頁面上新建一個分類的時候, 可以在同一個頁面新建/編輯這個分類包含的項目和項目具體信息
目前想到的做法是, 頁面上有添加項目的按鈕, 點擊按鈕的時候就通過Ajax在數(shù)據(jù)庫中生成了新項目, 然后在保存分類的時候, 再把剛才的項目和分類做關聯(lián);但這樣做的問題是, 如果編輯/新建分類的時候刷新了頁面, 或者其他原因沒有最終點擊保存的話, 數(shù)據(jù)庫中會增加很多沒有外鍵的Item數(shù)據(jù)
請問實現(xiàn)這個功能更好的解決辦法是什么? 或者說有什么辦法, 判斷在分類沒有成功保存的情況下, 回滾之前建立的項目?
問題解答
回答1:我覺得頁面設計邏輯可以改一下,先完善分類信息,保存分類信息后,再在這個分類信息增加項目。這樣提交項目信息的時候分類信息肯定是有的。至于你說的情況,先創(chuàng)建項目,再賦予分類的話,肯定會產(chǎn)生無分類的項目,要不再加個頁面,查看所有無分類的項目,讓用戶去設置分類?
相關文章:
1. docker網(wǎng)絡端口映射,沒有方便點的操作方法么?2. golang - 用IDE看docker源碼時的小問題3. docker - 如何修改運行中容器的配置4. docker-machine添加一個已有的docker主機問題5. docker 下面創(chuàng)建的IMAGE 他們的 ID 一樣?這個是怎么回事????6. docker鏡像push報錯7. macos - mac下docker如何設置代理8. MySQL數(shù)據(jù)庫中文亂碼的原因9. android studio總是在processes running好久10. docker不顯示端口映射呢?
