django 序列化自定义字段

2020-05-13 09:47:29 浏览数 (1)

代码语言:javascript复制
serializers.ModelSerializer 序列化返回数据之前对字段进行自定义然后返回数据


# 序列化所有的字段
class V1s(serializers.ModelSerializer):
# 这里是要进行自定义的字段,数据库中有个m3u8字段,这里定义字段的时候一定要和数据库的字段名字是一样的
    m3u8=serializers.SerializerMethodField()

    class Meta:
        model = models.Movies
        fields = '__all__'
    # 自定义字段,用get_字段名字的方式获取到字段,然后对字段进行处理
    def get_m3u8(self, obj): # 这里的obj值得就是字段对象 它是一个queryset
        a = obj.m3u8
        b = eval(a) # 对m3u8里面的url转换成列表 # 这点超级的方便,
        print(type(b))
        return b # 因为对字段进行过处理,所以需要返回处理过后的结果给序列化器


# 这里是没有进行自定义字段处理的序列化器,因为有all存在,默认返回数据库中所有字段
class V2s(serializers.ModelSerializer):
    m3u8=serializers.SerializerMethodField()
    class Meta:
        model = models.Movies
        fields = '__all__'

0 人点赞