2022/08/18-学习笔记(四)-多对多

基本操作

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

drf中应用
    def save(self, **kwargs):
        data = super().save(**kwargs)
        data.dept.set(self.initial_data.get('dept', []))
        data.menu.set(self.initial_data.get('menu', []))
        data.permission.set(self.initial_data.get('permission', []))
        return data
访问初始数据和实例(上述代码中的initial_data)

将初始化对象或者查询集传递给序列化实例时,可以通过.instance访问。如果没有传递初始化对象,那么.instance属性将是None。
将数据传递给序列化器实例时,未修改的数据可以通过.initial_data获取。如果没有传递data关键字参数,那么.initial_data属性就不存在。

    def create(self, validated_data):
        if "password" in validated_data.keys() and validated_data['password']:
            validated_data['password'] = make_password(validated_data['password'])
        roles = validated_data.pop('role')
        user = super().create(validated_data)
        user.role.add(*roles)
        return user

此处将role从validated_data中pop出去,然后用多对多方式添加。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值