2

[POST] /api/contact/{pk}/Serializer を使用して API を削除するにはどうすればよいですか? (2 番目の API を取り除きます) 私のシリアライザーの定義は次のとおりです。

class ContactSerializer(serializers.ModelSerializer):

    class Meta:
        model = Contact
        fields = ('chatuser', 'contact', 'is_blocked')

そして、私のビューセットは次のとおりです。

class ContactViewSet(mixins.CreateModelMixin, mixins.RetrieveModelMixin, viewsets.GenericViewSet):
    queryset = Contact.objects.all()
    serializer_class = ContactSerializer

Django REST Swagger UI

4

1 に答える 1

5

おそらくReadOnlyModelViewsetを使用できますか?ドキュメントから:

http://www.django-rest-framework.org/api-guide/viewsets#readonlymodelviewset

ReadOnlyModelViewSet クラスも GenericAPIView を継承しています。ModelViewSet と同様に、さまざまなアクションの実装も含まれていますが、ModelViewSet とは異なり、「読み取り専用」アクションである .list() と .retrieve() のみを提供します。

GenericViewSet はすぐに使用できるアクションを提供しないため、少し奇妙ですが、ModelViewSet でのみ POST を取得する必要があります。

GenericViewSet クラスは GenericAPIView を継承し、デフォルトの get_object メソッド、get_queryset メソッド、およびその他の一般的なビュー ベース動作のセットを提供しますが、デフォルトではアクションは含まれません。

これはおそらく、これらの mixin の 1 つが追加のアクションを提供していることを意味します。以下を参照してください。

GenericViewSet クラスを使用するには、クラスをオーバーライドし、必要な mixin クラスを mixin するか、アクションの実装を明示的に定義します。

これらのミックスインの定義を確認したり、ここに投稿したりできる場合は、代わりに、ミックスインなしで ReadOnlyModelViewSet を使用してみて、うまくいくかどうかを確認してください。

于 2014-02-11T11:39:13.103 に答える