反序列化,即前端数据到后端,反序列化的同时肯定会进行数据校验,这和django中的form组件是一个道理。
class GoodsSerializer(ModelSerializer):people = PeopleSerializer()# 覆盖hobby字段,显示出详情hobby = serializers.SerializerMethodField()class Meta:model = Goodsfields = "__all__"def get_hobby(self,obj):return obj.get_hobby_display()# TODO:对单个字段验证,这是钩子函数,就跟form组件的钩子是一样的def validate_name(self, value):if "python" in value.lower():return valueraise serializers.ValidationError('输入的商品名称必须包含python')# 除此之外,还有自定义钩子,全局钩子。
