drf -- ModelSerializer的用法

类似ModerForm的用法

1.serializers.py代码示例:

from rest_framework import serializers
from student import models

class StudentModelSerializers(serializers.ModelSerializer):
    class Meta:
        model = models.Student
        fields = "__all__"
        #该字段表示在只读,在添加数据时,不能写,只能写字段中声明的字段
        read_only_fields = ['id']

2.views.py代码示例:

from django.views import View
from django.http import HttpResponse,JsonResponse
from unsers.serializers import StudentSerializer,StudentModelSerializers
from student import models
import json
# Create your views here.
class StudentView(View):

    def get(self,request):
        stu_obj = models.Student.objects.all()
        serializers =StudentModelSerializers(instance=stu_obj,many=True)
        return JsonResponse(serializers.data,safe=False)

    def post(self,request):
        data = json.loads(request.body)
        serializers = StudentModelSerializers(data=data)
        serializers.is_valid(raise_exception=True)
        serializers.save()
        return HttpResponse("添加成功")

    def put(self,request):
        data = json.loads(request.body)
        id= data.get("id")
        stu_obj = models.Student.objects.get(id=id)
        serializers = StudentModelSerializers(instance=stu_obj,data=data)
        serializers.is_valid(raise_exception=True)
        serializers.save()
        return HttpResponse('修改成功')

posted @ 2022-05-03 18:58  志强爱璇璇  阅读(45)  评论(0)    收藏  举报