Django多对多数据增删改查

Django多对多数据增删改查

1.表结构及基本方法

1.表结构

# models.py 
class Book(models.Model): 
    author = models.ManyToMany(to='author', relate_name='author') 
    """ 
        ...字段 
    """ 
class author(models.Model): 
    """ 
        ...字段 
    """

 

2.基本方法

# 增、删、改 
    add() # 增加 
    remove() # 删除表,只删一条数据 
    clear() # 清空表, 把所有关系的表全部清空 例如 book_obj.author.clear() 表示把当前书籍对象的所有作者全部清空

 

2.查

 
# views.py 
# 获取主键id值为1的图书对象 book_obj = models.Book.object.filter(pk=1).first() 
# 通过图书对象获取该图书对象下的所有作者 all_author = book_obj.author.all() 
# 这里的author字段是建表时候的字段名 
# 结果为类似列表的querry_set列表对象

3.增

 
# views.py 
    author_list = [1, 2, 3, 4] # 获取当前新增的图书对象 
    book_obj = models.Book.objects.create( title=123, price=123, publish=123,) 
# 通过当前新增的图书对象在多对多关系表中添加对应关系字段 book_obj.author.add(*author_list) 
# save()方法保存 book_obj.save() 
# add()方法可以接收一个值,也可以用逗号隔开接收多个值

4.改

 
# views.py 
# 修改图书作者为下方列表 
    author_list = [1, 2, 3, 4] 
# 获取当前修改的图书对象 
    book_obj = models.Book.objects.filter(pk=1).first() 
# 先清除当前图书的所有作者再添加 
    book_obj.author.clear() 
    book_obj.author.add(*authors_list) 
    book_obj.save() 
# 直接修改 
    book_obj.author.set(*authors_list)

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值