一对多 多对多 添加记录,修改,删除

 

一对多添加记录:

publish=models.Publish.objects.create(name='北京出版社',addr='北京',phone='0536-12345678',email='邮箱地址')
# 新增西游记图书

book=models.Book.objects.create(name='红楼梦',price='23.45',publish=publish)# publish=对象
# book=models.Book.objects.create(name='西游记',price='23.55',publish_id=1)# publish_id=数字

 


# 新增西游记

book=models.Book.objects.create(name='西游记',price='23.55',publish_id=publish.id)# publish_id=数字

 


# 总结:
1 email可以不传email,本质就是varchar(admin中会判断)
2 新增图书:
-publish=publish
-publish_id=publish.id
3 写在表模型中的publish字段,到数据库中会变成publish_id(ForeignKey)
4 查到book对象以后
-book.publish 对象
-book.publish_id id号,数字

 

 

多对多添加记录,修改,删除:

1 自动创建的表,表模型就拿不到,book.authors代指表模型


# 多对多,作者和书
# 给西游记这本书新增两个作者lqz和egon
# 去到西游记这本书
# book=models.Book.objects.get(name='西游记')
# 代指中间表book.authors
# lqz=models.Author.objects.get(id=2)
# egon=models.Author.objects.get(id=3)
# book.authors.add(2,3) # 新增作者,通过id新增
# # book.authors.add(lqz,egon) # 新增作者,通过对象新增
# book.authors.add(2,egon) # 新增作者,通过对象新增

# 西游记删除一个作者
# book = models.Book.objects.get(name='西游记')
# book.authors.remove(2)
# egon = models.Author.objects.get(id=3)
# book.authors.remove(egon)

# clear 清空所有作者
book = models.Book.objects.get(name='西游记')
# book.authors.add(2, 3)
# book.authors.clear()

# set 先清空,再add,前提是不存在的作者
book.authors.set([4, ])

# add 增加,remove删除,set  clear 

posted @   朱饱饱  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示