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. phpstudy8.1沒集成mysql-front2. Docker for Mac 創建的dnsmasq容器連不上/不工作的問題3. node.js - mongodb查找子對象的名稱為某個值的對象的方法4. docker鏡像push報錯5. 關docker hub上有些鏡像的tag被標記““This image has vulnerabilities””6. docker 下面創建的IMAGE 他們的 ID 一樣?這個是怎么回事????7. 利用IPMI遠程安裝centos報錯!8. html5 - datatables 加載不出來數據。9. 前端 - @media query 使用出現的問題?10. html5和Flash對抗是什么情況?

網公網安備