37,719
社区成员
发帖
与我相关
我的任务
分享
from rest_framework import serializers
class DepartmentSerializer(serializers.Serializer):
department = serializers.CharField(max_length=64)
class RankSerializer(serializers.Serializer):
rank = serializers.CharField(max_length=12)
class CepingSerializer(serializers.Serializer):
id = serializers.IntegerField()
department = DepartmentSerializer()
name = serializers.CharField(max_length=64)
IDcard = serializers.CharField(max_length=64)
password = serializers.CharField(max_length=256)
identity = serializers.CharField(source='get_identity_display')
rank_id = RankSerializer()
special_identity = serializers.CharField(max_length=64)
cePing = serializers.BooleanField(default=False)
ganBu_finished = serializers.CharField(max_length=256)
ganBu_unfinished = serializers.CharField(max_length=256)
banZi_finished = serializers.CharField(max_length=256)
banZi_unfinished = serializers.CharField(max_length=256)
status = serializers.CharField(max_length=1, default='0')
class CepingView(APIView):
def get(self, request):
"""获取所有测评者"""
ceping_queryset = Ceping.objects.all()
ser_ceping = CepingSerializer(ceping_queryset, many=True)
return Response(ser_ceping.data)
def post(self, request):
"""根据条件查询测评者信息"""
# 接受传递过来的查询条件,axios默认是json,字典类型('inputstr')--data('inputstr')
data = json.loads(request.body.decode('utf-8'))
# 使用ORM获取满足条件的信息,并把对象转换为字典格式
ceping_queryset = Ceping.objects.filter(
Q(department=data['inputstr']) | Q(status=data['inputstr'])).values()
# 用下面两句有问题
ser_ceping = CepingSerializer(ceping_queryset, many=True)
return Response(ser_ceping.data)
# 这两句没问题
# ceping_queryset = list(ceping_queryset)
# return JsonResponse({'data': ceping_queryset})