首页 > 如何更新Django 的ManyToMany 字段

如何更新Django 的ManyToMany 字段

在创建一个新的的时候

p1=Post.objects.create(title=title,content=content,pub_date=pub_date,author=author)
            p1.label.add(p)

这里是没问题的
其中label是ManyToMany 字段
然后更新的时候

                p1=Post.objects.filter(id=num).update(title=title,content=content,pub_date=pub_date,author=author)
p1.label.add(p)

就不好使了 求教~


update()方法是不能更新M2M Field的。
stackoverflow-How to .update m2m field in django

目前所知道的一个方法是:

先查询到表中的那条数据,然后通过clear()方法清空M2M值,再把新值一个个add()进去

# tags 是M2M类型
object.tags.clear()
for tag in data['tags']:
    object.tags.add(tag)

但这个方法明显不够好啊,求教更赞的更新M2M Field的方法


update是用来批量更新的,返回结果是被更新对象的个数,你该用save而不是update

【热门文章】
【热门文章】