0
ネストされたオブジェクトの配列でListViewを作成したいとします。ここで私はこれまで試したどのような:RESTフレームワーク:オブジェクトをシリアライズする方法は?
rest.py
class GroupDetailSerializer(serializers.ModelSerializer):
class Meta:
model = Group
fields = (
'id',
'num',
'students',
)
@permission_classes((permissions.IsAdminUser,))
class GroupDetailView(mixins.ListModelMixin, viewsets.GenericViewSet):
serializer_class = GroupDetailSerializer
def get_queryset(self):
return Group.objects.all()
models.py
class Group(models.Model):
office = models.ForeignKey(Offices)
num = models.IntegerField()
@property
def students(self):
from pupils.models import Pupils
return Pupils.objects.filter(group=self)
をしかし、それは型エラーを返します。
<Pupils: John Doe> is not JSON serializable
私は別のシリアライザを使う必要があると思います私のstudents
フィールドに、どのように?
それがどの日時フィールドを持っているdoest?正確なトレースバックログを貼り付けることはできますか? – Roshan
@roshanのコメント以外に、ネストされたシリアライザの追加方法をチェックアウトすることもできます:http://www.django-rest-framework.org/api-guide/serializers/#dealing-with-nested-objects – yuwang
エラーあなたの 'Pupils'モデルがJSONシリアライズ可能でないために発生しています。回避策のために、 'json'をインポートし、' return json.dumps(Pupils.objects.filter(group = self)) 'を実行することができます。 – kapilsdv