Py学习  »  Django

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

Quang VÅ© • 4 年前 • 609 次点击  

我在学习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

在这段代码中,通过一个项目对象,我可以添加许多发布条目。如何使用查询从项目对象中删除条目?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/38585
 
609 次点击  
文章 [ 2 ]  |  最新文章 4 年前
Anoop Kumar
Reply   •   1 楼
Anoop Kumar    5 年前

只需使用 remove() 删除它 demo .

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

有关“多对多”的更多信息,请检查此 link

谢谢

Willem Van Onsem
Reply   •   2 楼
Willem Van Onsem    5 年前

鉴于 a 是你 Article p 是你的吗 Publication 如果要删除,可以使用 .remove(..) [Django-doc] 功能:

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

如果 不是与相关的发布 ,那么这个调用基本上是一个“no op”:它不会改变任何东西,也不会引发异常。

注意我们在这里 删除 Publiction 对象本身,其他对象 文章 S仍指 .

这是一个“variadic”方法,因此如果您想删除 p1 , p4 p5 来自 publications 属于 ,你可以写:

a.publications.remove(p1, p4, p5)  # remove three publications from a