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