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')
使用して '私はそれを試してみましたが、同じことが起こる –
必要シリアライザのフィールドを非表示にするread_only_fields'、私はフィールドからread_only_fieldsでNotesAthleteSerializerを切り替えます。 – Gorilla3D
各シリアライザでは、フィールドリストには必要なフィールドのみが含まれています。モデルのすべてのフィールドを含める必要はありません。 –