如何在Django中删除所有可能的对象

时间:2013-09-24 05:31:23

标签: django django-orm

我有一个模特Foo。与Moo有许多关系。

现在Foo在其多对多领域有很多对象,即它有moo1,moo2,moo3等等 如何将所有对象一起删除? 我知道我们可以单独删除每个。

foo = FOO()
foo.save()
foo.moo.add(moo1)
foo.moo.remove(moo1)

即。

foo = FOO()
foo.save()
foo.moo.add(moo1)
foo.moo.add(moo2)
foo.moo.reset() # This should remove all objects that have been added
                  # in this field. This does not work but I want
                  # something like this. 

3 个答案:

答案 0 :(得分:4)

使用clear方法。

  

从相关对象集中删除所有对象:

b = Blog.objects.get(id=1)
b.entry_set.clear() 
  

请注意,这不会删除相关对象 - 它只会取消它们的关联。

     

就像remove()一样,clear()仅在ForeignKeys上可用   空=真。

答案 1 :(得分:2)

我认为foo.moo.clear()应该有效

答案 2 :(得分:0)

使用相关对象清除方法clear clear()解除所有与Foo相关的对象的关联

moo.foo_set.clear()

要删除对象,请使用delete() queryset方法

Foo.objects.all().delete()

您可以使用filter()默认管理器方法删除一个对象

Foo.objects.filter(name='moo1').delete()