2

我有一个模型 Foo。这与 Moo 有多对多的关系。

现在 Foo 在它的多对多字段中有很多对象,即它有 moo1、moo2、moo3 等我怎样才能一起删除所有对象?我知道我们可以单独删除每个。

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

IE

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. 
4

3 回答 3

4

使用clear方法。

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

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

请注意,这不会删除相关对象——它只是解除它们的关联。

就像 remove() 一样,clear() 仅在 null=True 的 ForeignKeys 上可用。

于 2013-09-24T05:39:50.010 回答
3

我认为 foo.moo.clear() 应该工作

于 2013-09-24T05:34:36.707 回答
0

使用相关对象 clear 方法 clearclear()来解离所有 Foo 相关对象

moo.foo_set.clear()

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

Foo.objects.all().delete()

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

Foo.objects.filter(name='moo1').delete()
于 2020-06-28T15:45:29.460 回答