Возврат пользовательского ответа на успешный запрос POST в django rest framework - PullRequest
0 голосов
/ 26 января 2020

Я хочу вернуть пользовательский ответ пользователю, когда он ударил API с помощью запроса POST, и это успешно. Вот фрагменты кода: 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)

urls.py

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

Сейчас он возвращает сведения о отправить запрос как успешный ответ, есть ли способ вернуть какой-либо другой ответ, основанный на моем собственном наборе запросов?

1 Ответ

0 голосов
/ 26 января 2020

Вы можете написать пользовательский API на views.py. Я хочу, например,

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})

, а затем определить URL.

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'),
]

Вот и все.

Также вы можете управлять проницаемости: https://www.django-rest-framework.org/api-guide/permissions/#setting - политика разрешений , и вы можете использовать сериализатор для представлений: https://www.django-rest-framework.org/api-guide/serializers/#saving -instances

...