如何从Django中的对象中删除条目

时间:2018-11-01 07:53:58

标签: django

我正在学习Django,但查询中存在一些问题: 我有这个代码

class Publication(models.Model):
  title = models.CharField(max_length=30)
  def __str__(self):
    return self.title

class Article(models.Model):
  headline = models.CharField(max_length=100)
  publications = models.ManyToManyField(Publication)

  def __str__(self):
    return self.headline

在此代码中,我可以使用Article对象添加许多Publication条目。如何使用查询从Article对象中删除条目?

2 个答案:

答案 0 :(得分:0)

假设a是您Article,而p是您要删除的Publication,则可以使用.remove(..) [Django-doc]函数:

a.publications.remove(p)  # remove p from the publications of a

如果p不是与a相关的出版物,则此调用基本上是“禁止操作”:它不会更改任何内容,也不会引发异常。

请注意,这里我们不删除Publiction对象本身,有可能其他Article仍引用p

这是一种“可变”方法,因此,例如,如果您要从p1的{​​{1}}中删除p4p5publications,你可以这样写:

a

答案 1 :(得分:0)

只需使用remove()删除它demo

如果要删除与其关联的所有条目,请使用clear(),如link所示。

有关many_to_many的更多信息,请检查此link

谢谢