0

DRF および DRF ネスト ルーターの使用

これが私のコードです:

class MemberViewSet(viewsets.ViewSet):
    queryset = GroupMember.objects.all()
    serializer_class = GroupMembersSerializer


    def create(self, request, group_pk=None):
        queryset = self.queryset.all()
        serializer = GroupMembersSerializer(queryset)
        return Response(serializer.data)

しかし、新しいメンバーが投稿されると、「QuerySet」オブジェクトには属性「ユーザー」がありませんというエラーが表示されます

何か助けはありますか?

4

2 に答える 2

2

クエリセット(またはオブジェクトのリスト)をシリアル化するには、渡す必要がありますmany=True

serializer = GroupMembersSerializer(queryset, many=True)

それ以外の場合は、単一のインスタンスをシリアル化する必要があると見なされます。そのため、その属性にGroupMemberアクセスしようとしましたuser

于 2015-10-26T20:54:58.070 に答える
1

開発が遅すぎず、選択肢がある場合は、https://github.com/chibisov/drf-extensionsを確認してください。これは、非侵入的な方法でルーターのネストを行います。ビューセットの基本的なメソッドを上書きする必要はありません。

drf-nested-routers が、クラスのページネーションとフィルタリングを可能にする基になるビューセット メソッドに干渉することを過去から学びました。

  • get_queryset
  • get_serializer_class
  • get_serializer
  • get_object

私の意見では、ビューセットのデザインと機能が提供するものに大きく影響します。

于 2015-10-26T21:06:48.417 に答える