我收到以下错误
尝试获取字段值时出现AttributeError 序列化程序
first_name
上的AthleteSerializer
。序列化器字段 可能命名不正确,并且不匹配任何属性或键QuerySet
个实例。原始异常文本是:'QuerySet'对象 没有属性'first_name'。
为什么会出错?
这是我的views.py:
from rest_framework.response import Response
from rest_framework.views import APIView
from .models import Athlete
from athletics.serializers import AthleteSerializer
class ListAthletes(APIView):
def get(self, request, format=None):
all_athletes = Athlete.objects.all()
import pdb; pdb.set_trace()
serializer = AthleteSerializer(all_athletes)
return Response(serializer.data)
这是我的serializers.py
from rest_framework import serializers
from .models import Athlete
class AthleteSerializer(serializers.ModelSerializer):
class Meta:
model = Athlete
fields = (
'first_name',
'last_name'
)
这是我的models.py:
from django.db import models
class Athlete(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
答案 0 :(得分:3)
试试这个:
serializer = AthleteSerializer(all_athletes, many=True)
答案 1 :(得分:2)
Hasan正确指出了很多=正确。 在DRF中的含义是: 由于您的serializer.data将是一个列表,并且列表中的每个项目都需要转换为python数据类型,进而可以轻松地呈现为JSON,XML。 对于登陆此职位的任何人:不要混淆多对多关系。