2015-11-04 137 views
0

當試圖在串行AthleteSerializer得到一個值場 first_name時,我得到了以下錯誤了AttributeError的試圖獲得價值領域的串行

了AttributeError的。序列化程序字段 可能命名錯誤,並且不匹配實例上的任何屬性或鍵。原始異常文本是:'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) 

回答

1

試試這個:

serializer = AthleteSerializer(all_athletes, many=True) 
+0

如果你不介意我問一個後續問題。如果我想了解任何特定的Django函數和應該傳遞給它的參數,那麼找到它的好地方是什麼?當我谷歌我經常最終在djangoproject.com文件,這使得似乎很羅嗦,我必須閱讀,才能明白哪些參數可以通過。 – user1283776

+1

@ user1283776,我經常看django文檔和stackoverflow問題。 –