0

私は2つのモデルAとBを持っています

class B(Model):
   As = models.ManyToManyField(A)

次に、次のことを行います

a_instance.b_set.clear()

a_instance から任意の b_instances へのすべての参照を削除するため。しかし、次のエラーが発生しました。

Database Error: column a_b/id doesn not exists
Line 1:  SELECT "a_b"."id",

これは本当です。多対多の関係 (A と B の間) にある私の中間テーブル a_b には、id という名前のフィールドがありません。a_id と b_id の代わりに 2 つのフィールドがあります。

Djangoにidだけでなくa_idとb_idを使用させる方法を知っている人はいますか?

4

2 に答える 2

0

Django では、多対多の関係テーブルに id フィールドが必要です。

于 2013-10-30T00:39:41.823 に答える
0

2 つのモデル間の 1 つのインスタンスの関係を削除する必要がある場合は、関係テーブルのマネージャーにアクセスして削除できます。MyModel.relations.throughm2m 関係テーブルには、関係を削除するために so経由でアクセスできます。

B.As.through.objects.filter(a=a_instance).delete()

参照:

https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.ManyToManyField.through

クレジット : manytomany からすべての関係を削除するには?

于 2013-10-29T23:05:04.810 に答える