Python 在django rest框架中返回对成功POST请求的自定义响应
当用户通过POST请求点击API时,我想向用户返回一个自定义响应,这是成功的。以下是代码片段: 视图.pyPython 在django rest框架中返回对成功POST请求的自定义响应,python,django,rest,django-rest-framework,Python,Django,Rest,Django Rest Framework,当用户通过POST请求点击API时,我想向用户返回一个自定义响应,这是成功的。以下是代码片段: 视图.py class BlogPostAPIView(mixins.CreateModelMixin,generics.ListAPIView): # lookup_field = 'pk' serializer_class = BlogPostSerializer def get_queryset(self): return BlogPost.objects
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)
app_name = 'postings'
urlpatterns = [
re_path('^$', BlogPostAPIView.as_view(),name='post-create'),
re_path('^(?P<pk>\d+)/$', BlogPostRudView.as_view(),name='post-rud'),
]
url.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)
app_name = 'postings'
urlpatterns = [
re_path('^$', BlogPostAPIView.as_view(),name='post-create'),
re_path('^(?P<pk>\d+)/$', BlogPostRudView.as_view(),name='post-rud'),
]
app_name='posting'
URL模式=[
re_path(“^$”,BlogPostAPIView.as_view(),name='post-create'),
re_path(“^(?P\d+/$”,BlogPostRudView.as_view(),name='post-rud'),
]
现在它将post请求的详细信息作为成功响应返回,是否有任何方法可以基于我自己的自定义queryset返回其他响应?您可以在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})
然后定义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'),
]
app_name='posting'
URL模式=[
re_path(“^$”,BlogPostAPIView.as_view(),name='post-create'),
re_path(“^(?P\d+/$”,BlogPostRudView.as_view(),name='post-rud'),
re_path(“^hello/$”,hello.as_view(),name='hello'),
]
就这样
您还可以管理置换:
您可以在视图上使用serializer:谢谢您的回答,但我正在寻找一种基于自定义queryset返回JSON响应的方法,如果您能提出一种方法,那就太棒了。