python - 在 django rest 框架中返回对成功 POST 请求的自定义响应
问题描述
当用户使用 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'),
]
而已。
您还可以管理权限:https ://www.django-rest-framework.org/api-guide/permissions/#setting-the-permission-policy ,您可以在视图上使用序列化程序:https://www.django- rest-framework.org/api-guide/serializers/#saving-instances
推荐阅读
- elasticsearch - 每个索引的 Elasticsearch 最大文档数
- c# - 为什么我已经在 Datagrid 中设置了 Columnheader?
- php - Laravel $touch 用于更新 updated_at
- python - 在 Pandas 中按不规则组拆分数据帧
- orm - ORM:Sequelize:多对多关系
- angular - 为什么 ng serve 在 ubuntu vs code 中保存文件后不会自动编译?
- batch-file - 获取变量的完整值并使用批处理文件执行 tabcmd
- html - 如何通过单击链接按钮更改特定的 div 背景颜色以及打开新页面?
- java - 在 Spring Boot 中执行计划的自定义 sql 查询
- java - AWS lambda 项目