2016-11-04 8 views
0

私は "アスリート"との単純なビューを持っています。しかし、私はレコードからデータセット全体を取り戻しています。ModelSerializerの指定されたフィールドがフィルタリングされていません

@api_view(['GET']) 
@permission_classes((permissions.AllowAny,)) 
def get_by_years(request): 
    athletes = AthleteProfile.objects.filter(owner=request.user) 
    athletes_json = NotesAthleteSerializer(athletes, many=True) 

    return Response(athletes_json.data) 

私はこのフォーマットを期待しています:その代わり、それはのようにすべての詳細を提供です

[ 
    { 
     "id": 215, 
     "first_name": "Joseph", 
     "last_name": "Doe", 
     "graduation_year": 2016, 
     "notes": "fdgdfg wew", 
    } 
] 

:ここ

[ 
    { 
     "id": 215, 
     "first_name": "Joseph", 
     "last_name": "Doe", 
     "graduation_year": 2016, 
     "notes": "fdgdfg wew", 
     "email": "[email protected]", 
     "date_of_birth": null, 
     "mobile_number": "123-234-23271", 
     "team_name": "Wildcats", 
     "coach_name": "", 
     "coach_email": "", 
     "coach_number": "", 
     "event_seen": "NA", 
     "jersey_number": 1, 
     "rank": 2, 
     "public_record": false, 
     "notify_key": "f9781efee667d26cdeb6cead447e49bdd8a836a3", 
     "notified_on": "2016-11-02T10:58:37.131000Z", 
     "level_of_interest": "1", 
     "user": null, 
     "owner": 30, 
     "sport_position": null, 
     "next_step": null, 
     "next_steps": [ 
      1, 
      2 
     ] 
    } 
] 

は、直列化のための私の設定です:

class NotesAthleteSerializer(serializers.ModelSerializer): 

    class Meta: 
     model = AthleteProfile 
     field = ('id', 'first_name', 'last_name', 'graduation_year', 'notes') 

私は "NotesAthleteSe rializer "が間違っていますか?

私のようなシリアル化を定義するにはいくつかの他の方法試してみた:私は完全な馬鹿だ

class NotesAthleteSerializer(serializers.ModelSerializer): 
    first_name = serializers.CharField(read_only=True) 
    last_name = serializers.CharField(read_only=True) 
    graduation_year = serializers.IntegerField(read_only=True) 
    notes = serializers.CharField(read_only=True) 

    class Meta: 
     model = AthleteProfile 
     read_only_fields = ('id', 'first_name', 'last_name', 'graduation_year', 'notes') 

class NotesAthleteSerializer(serializers.ModelSerializer): 
    class Meta: 
     model = AthleteProfile 
     read_only_fields = ('id', 'first_name', 'last_name', 'graduation_year', 'notes') 

class NotesAthleteSerializer(serializers.ModelSerializer): 
    first_name = serializers.CharField(read_only=True) 
    last_name = serializers.CharField(read_only=True) 
    graduation_year = serializers.IntegerField(read_only=True) 
    notes = serializers.CharField(read_only=True) 

    class Meta: 
     model = AthleteProfile 
     field = ('id', 'first_name', 'last_name', 'graduation_year', 'notes') 
     read_only_fields = ('id', 'first_name', 'last_name', 'graduation_year', 'notes') 
+0

使用して '私はそれを試してみましたが、同じことが起こる –

+0

必要シリアライザのフィールドを非表示にするread_only_fields'、私はフィールドからread_only_fieldsでNotesAthleteSerializerを切り替えます。 – Gorilla3D

+0

各シリアライザでは、フィールドリストには必要なフィールドのみが含まれています。モデルのすべてのフィールドを含める必要はありません。 –

答えて

0

を、私は "持っていました「フィールド」ではなく「フィールド」....

01代わりに、それがために必要な

class NotesAthleteSerializer(serializers.ModelSerializer): 

    class Meta: 
     model = AthleteProfile 
     fields = ('id', 'first_name', 'last_name', 'graduation_year', 'notes') 
関連する問題