代码语言: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__'