簡體   English   中英

Django多對多關系

[英]Django Many-to-Many relationship

我有兩個模型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。

那么,有誰知道我該如何強迫Django使用a_id和b_id而不是id?

如果您需要刪除2個模型之間一個實例的關系,則可以通過訪問關系表的Manager來完成。 可以通過MyModel.relations.through訪問m2m關系表,以便刪除關系:

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

參考:

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

信用: 如何消除多多關系中的所有關系?

Django要求在多對多關系表中具有id字段。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM