python - Django中類似事務的實現方法?
問題描述
class Category(models.Model): c_name = models.CharField(max_length=100)class Item(models.Model): '''外鍵關聯到Category''' i_name = models.CharField(max_length=100) category = models.ForeignKey(’Category’, related_name=’items’, null=True, blank=True)
表結構是這樣, 要實現在頁面上新建一個分類的時候, 可以在同一個頁面新建/編輯這個分類包含的項目和項目具體信息
目前想到的做法是, 頁面上有添加項目的按鈕, 點擊按鈕的時候就通過Ajax在數據庫中生成了新項目, 然后在保存分類的時候, 再把剛才的項目和分類做關聯;但這樣做的問題是, 如果編輯/新建分類的時候刷新了頁面, 或者其他原因沒有最終點擊保存的話, 數據庫中會增加很多沒有外鍵的Item數據
請問實現這個功能更好的解決辦法是什么? 或者說有什么辦法, 判斷在分類沒有成功保存的情況下, 回滾之前建立的項目?
問題解答
回答1:我覺得頁面設計邏輯可以改一下,先完善分類信息,保存分類信息后,再在這個分類信息增加項目。這樣提交項目信息的時候分類信息肯定是有的。至于你說的情況,先創建項目,再賦予分類的話,肯定會產生無分類的項目,要不再加個頁面,查看所有無分類的項目,讓用戶去設置分類?
相關文章:
1. JavaScript將.apply()與'new'運算符配合使用這可能嗎?2. angular.js - webpack build后的angularjs路由跳轉問題3. java - web項目中,用戶登陸信息存儲在session中好 還是cookie中好,取決于什么?4. java - Activity中的成員變量被賦值之后,Activity被回收的時候內存才會被釋放嗎5. 請求一個數據返回內容為空或者錯誤如何再次請求幾次6. 數組按鍵值封裝!7. 老師,flex-shrink: 1; 按視頻操作,不會自動縮放8. 為什么bindClass訪問不了的?9. Discuz! Q 有人用過嗎?10. php由5.3升級到5.6后,登錄網站,返回的是php代碼,不是登錄界面,各位大神有知道的嗎?
