0
前安全檢查相關的對象我有一個Django應用程序有兩種模式:的Django:刪除
class Foo(models.Model):
baz = models.CharField(max_length=100)
class Bar(models.Model):
foo = models.ForeignKey(Foo)
在視圖中,我想刪除一個Bar
對象。目前它與做:
foo_to_delete = Foo.objects.get(pk=1)
if not foo_to_delete.bar_set.exists(): # step 1
foo_to_delete.delete() # step 2
但現在,如果在步驟1和步驟2之間的時間,有人拯救與foo
場指向foo_to_delete
對象的新Bar
對象,這種新的Bar
對象將被刪除第2步。
有沒有什麼辦法可以避免這種情況,也許通過執行單個SQL調用? Django ORM在安全刪除之前是否提供了進行這種檢查的功能?