簡體   English   中英

在 django rest 框架中返回對成功 POST 請求的自定義響應

[英]Return custom response to successful POST request in django rest framework

我想在用戶使用 POST 請求訪問 API 時向用戶返回自定義響應,並且這是成功的。 以下是代碼片段: views.py

class BlogPostAPIView(mixins.CreateModelMixin,generics.ListAPIView):
    # lookup_field = 'pk'
    serializer_class = BlogPostSerializer
    def get_queryset(self):
        return BlogPost.objects.all()
    def perform_create(self, serializer):
        serializer.save(user=self.request.user)
    def post(self,request,*args,**kwargs):
        return self.create(request,*args,**kwargs)

網址.py

app_name = 'postings'
urlpatterns = [
    re_path('^$', BlogPostAPIView.as_view(),name='post-create'),
    re_path('^(?P<pk>\d+)/$', BlogPostRudView.as_view(),name='post-rud'),
]

現在它將發布請求的詳細信息作為成功響應返回,有什么方法可以根據我自己的自定義查詢集返回一些其他響應?

您可以在 views.py 上編寫自定義 api。 我想例如;

from rest_framework.views import APIView 
from rest_framework.response import Response


class Hello(APIView):
    @csrf_exempt
    def post(self, request):
        content = "Hi"
        type = "message" 
        return Reponse({"content":content,"type":type})

然后定義網址。

app_name = 'postings'
urlpatterns = [
    re_path('^$', BlogPostAPIView.as_view(),name='post-create'),
    re_path('^(?P<pk>\d+)/$', BlogPostRudView.as_view(),name='post-rud'),
    re_path('^hello/$', Hello.as_view(),name='Hello'),
]

就是這樣。

您還可以管理permessions: https://www.django-rest-framework.org/api-guide/permissions/#setting-the-permission-policy ,你可以使用的意見串行: HTTPS://www.django- rest-framework.org/api-guide/serializers/#saving-instances

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM