[英]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.