2

私はモデルのフーを持っています。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. 
4

3 に答える 3

4

メソッドを使用しclearます。

関連オブジェクト セットからすべてのオブジェクトを削除します。

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

これは関連するオブジェクトを削除しないことに注意してください。関連付けを解除するだけです。

remove() と同様に、clear() は null=True の ForeignKey でのみ使用できます。

于 2013-09-24T05:39:50.010 に答える
3

私は foo.moo.clear() が動作するはずだと思います

于 2013-09-24T05:34:36.707 に答える