views.py from django.shortcuts import render # Create your views here. from rest_framework import serializers from rest_framework.views import APIView from rest_framework.exceptions import ValidationError from rest_framework.response import Response from rest import models class SourceSerializer(serializers.Serializer): name = serializers.CharField()#获取字段数据后进行序列化 def validate_name(self, value): #添加的验证规则 类似 if '草' in value: raise ValidationError('不符合社会主义核心价值观') return value class SourceModel(serializers.ModelSerializer): group = serializers.CharField(source='group.num') #获取字段中不可见的内容source='get_字段_display', 比如choices中的文字 #跨表通过fk.属性名(group.num) 赋值给字段名group class Meta: #指定表 model = models.User fields = "__all__" depth = 1#跨表深度(跨越一张表) from django.http import JsonResponse from django.views import View class SourceView(APIView): def get(self, request, *args, **kwargs): res = {"code": 0} all_source = models.User.objects.all() ser_obj = SourceModel(all_source, many=True)#多个字段序列需要加param:many=True print(ser_obj.data)#获取序列化后的数据 res["data"] = ser_obj.data return JsonResponse(res)#rest_framework中的Response 需要注册app: rest_framework 因为要条用其中api.html
DRF(django-rest_framework)框架
猜你喜欢
转载自www.cnblogs.com/qlshao/p/10250766.html
今日推荐
周排行