Django ManyToManyField 一次性清空多个和添加多个关系及一些其它操作

本文详细介绍如何在Django中批量清空、更新和添加ManyToManyField关系,包括使用Python列表解析批量操作的方法,以及如何通过set、clear、all等方法进行关系管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 一、批量清空想要清掉的manytomany中对应的关系

def xxxxxx(req):
    role_id=json.laods(req.POST.get('role_id')) #得到的是manytomany对应的id数组[1,2]
    users=xxxx.objects.filter(id__lt=3)
    for us in users:
       us.user_role.remove(*role_id) #在前面加个* 可以清掉字段中对应[1,2]的关系
    userser=ZJUser.objects.filter(id__in=userids)
    for ser in userser:
       ser.user_role.add(*role_id) #同理这里也可以添加
    return JsonResponse({'ret':0,'msg':'success'})


二、manytomany的其它操作

     obj.many.set(*[[1,2]]) #批量更新

     obj.many.clear()  #清空所有关系

     obj.many.all()  #获取所有对应关系

     obj.many.all().values('id','name') #获取关系中某些字段 要想直接通过JsonResponse输出 需要用list()进行转一下

     

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值