from django.db import models
from relatedModel.models import RelatedModel
class Model(models.Model)
relatedObjects = models.ManyToManyField(RelatedModel)
以上是我的一个模型,它引用了另一个模型。我希望能够从relatedObjects
删除指定的Model
而不将其从RelatedModel
我在delete
Model
views.py
中有relatedObject = get_object_or_404(RelatedModel, pk=pk).delete()
个功能:
RelatedModel
这是错误的,因为它会从RelatedModel
表中删除该对象。
如何从relatedObjects
的{{1}}字段中删除Model
对象 ?
答案 0 :(得分:4)
了解relatedObjects
实际上并不是Model
表的一部分非常重要。当您在模型上声明ManyToManyField
时,Django会创建一个全新的表来保存两个模型之间的关系,为方便起见,他们创建了一种相互访问的方式(例如relatedObjects
属性)。
如果我理解正确,你说你不想删除任何一个对象,你只想删除它们之间的关系。在这种情况下,请使用related manager上的remove()
方法:
model_instance.relatedObjects.remove(relatedmodel_instance)