在创建一个新的的时候
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