serializers.ListSerializer在更新时的使用

class TagGroupCreateUpdateSerializer(CustomModelSerializer):
    tags = serializers.ListSerializer(child=serializers.CharField(max_length=50), help_text="标签", write_only=True)

    class Meta:
        model = TagGroup
        fields = ["name", 'tags']

    def create(self, validated_data):
        tags = validated_data['tags']
        del validated_data['tags']

        tg = super().create(validated_data)

        for tag in tags:
            Tag.objects.create(group=tg, name=tag)

        # 企业微信添加标签组和标签(注意:企业微信不支持创建空标签组。所以如果没有tags就不创建标签组)
        client = get_wechat_client(4)
        tg.wechat_add_tag(client)
        return tg

在添加和修改时可用这种方式,也就是前端传过来一个tagGroup中的name字段同时传过来多个tags字段,
用这种方式就是序列化多个tags字段,它可以理解为一个声明。具体的添加操作是在create中完成的。
serializers.ListSerializer(child=serializers.CharField(max_length=50), help_text=“标签”, write_only=True)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值