MySQLデータベースからフィルタリングされたリストを取得しようとしています。クエリ自体は正常に見えるが、JSONはショーこの返さ:私が構築する必要があり仕様はこれを望んでいるときDjango Rest FrameworkでJSON出力をカスタマイズする
[
{
"id": "0038",
"name": "Jane Doe",
"total_hrs_per_week": 6,
"timezone": "America/Los_Angeles"
},
{
"id": "0039",
"name": "John Doe",
"total_hrs_per_week": 10,
"timezone": "America/Los_Angeles"
}]
を:
{
"people":[
{
"id": "0038",
"name": "Jane Doe",
"total_hrs_per_week": 6,
"timezone": "America/Los_Angeles"
},
{
"id": "0039",
"name": "John Doe",
"total_hrs_per_week": 10,
"timezone": "America/Los_Angeles"
}]}
ここに私のシリアライザは
class PeopleListSerializer(serializers.ModelSerializer):
id = serializers.CharField(source='id')
name =serializers.CharField(source='name')
total_hrs_per_week = serializers.IntegerField(source='total_hrs_per_week')
timezone = serializers.CharField(source='timezone')
class Meta:
model = models.Person
fields = ('id','name','total_hrs_per_week','timezone')
どれですこのように返された結果をどのようにラップするのか?
EDIT:
私はそう
class PeopleListWrapperSerializer(serializers.Serializer):
people = PeopleListSerializer(many=True)
class Meta:
fields = ['people']
のような別のシリアライザでこれをラップする。しかし、これは次のエラーをスローしてみました:
Got AttributeError when attempting to get a value for field
people
on serializerPeopleListWrapperSerializer
. The serializer field might be named incorrectly and not match any attribute or key on thePerson
instance. Original exception text was: 'Person' object has no attribute 'people'.
fields = ['people']を指定しないと、このフィールドはとにかくなります。多分それはそこで混乱するでしょう。しかしそれは唯一の推測です。 –