创建自定义Django API响应模板

时间:2018-11-05 08:14:03

标签: django python-3.x django-rest-framework django-views

我正在尝试使用django rest框架构建响应结构并具有一些标准模板主体:

响应正文应具有以下参数:

  • status_code:它应该接受状态码并将其提供为响应 宾语
    • 无效条目:这些是用户在表单中创建的无效主菜,请求未对其进行处理。
    • 消息:应提供成功/失败消息以及详细信息
    • 数据:Json到前端的响应数据
    • 任何空白都不应与响应正文一起使用。

1 个答案:

答案 0 :(得分:0)

您可能以错误的方式处理问题。您应该使用状态码来传递有关成功/失败的信息,然后传递数据中的错误。

如果您使用的是django rest框架,则可以通过序列化程序进行验证: https://www.django-rest-framework.org/api-guide/serializers/

然后您的视图看起来像

 def post(self, request):
    serializer = YourSerializer(data=request.data)
    if serializer.is_valid():
        serializer.save(**serializer.validated_data) 
        return Response(status=status.HTTP_201_CREATED)
    else:
        return Response(serializer.errors,status=status.HTTP_400_BAD_REQUEST)

然后数据中的错误将如下所示:

{
"email": [
    "Enter a valid email address."
],
"first_name": [
    "This field is required."
],
"last_name": [
    "This field is required."
],
"password": [
    "This field is required."
]

}