快速入手-基于Django-rest-framework的ModelSerializer模型序列化器(三)
1、基础代码
快速入手-基于Django-rest-framework的serializers序列化器(二)-CSDN博客
2、基于第一步的代码改成模型序列化
3、只需要修改serializer.py文件即可
from django.shortcuts import render, HttpResponse
from rest_framework.views import APIView
from .models import Link
from rest_framework import serializers
class LinkSerializerBak(serializers.Serializer):
# 对外展示或操作的字段,或者转换后的字段(比如name对外展示为mingzi)
id = serializers.CharField(max_length=300)
mingzi = serializers.CharField(max_length=300, source="name")
link = serializers.CharField(max_length=100)
sorting = serializers.IntegerField(default=100)
# 新增保存数据过程
def create(self, validated_data):
new_link = Link.objects.create(**self.validated_data)
return new_link
# 更新保存数据过程
def update(self, instance, validated_data):
Link.objects.filter(pk=instance.id).update(**validated_data)
gengxin = Link.objects.get(pk=instance.pk)
return gengxin
################模型序列化###########################
# 和模型直接耦合,确定不灵活,上面的是自己写
class LinkSerializer(serializers.ModelSerializer):
# 自定义接口字段名称source="name"是真实的,mingzi是解耦的名称
mingzi = serializers.CharField(max_length=300, source="name")
class Meta:
# 指定关联哪个模型集
model = Link
# fields = "__all__"
# 排除去掉哪些字段
exclude = ["gid", "name"]
4、其他配置、视图等都不需要修改
5、测试方法参考第二节的测试即可。