使用Django REST发出POST请求时validated_data为空

查尔斯·史密斯

我正在尝试使用Django REST框架在数据库中创建新条目,并且能够成功发送请求,但是validated_data为空:

# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.shortcuts import render
from rest_framework import viewsets
from django.shortcuts import get_object_or_404, get_list_or_404
from .models import GetPurchases, CarFax
from .serializers import PurchasesSerializer
from .serializers import CarFaxSerializer
from rest_framework.response import Response

# Create your views here.


class GetCarFax(viewsets.ModelViewSet):
    ''' This view will be used for POSTing new carfax reports to the database '''

    queryset = CarFax.objects.all()
    serializer_class = CarFaxSerializer
    # authentication_classes = []
    permission_classes = []
    #print('TEST')

    def list(self, request):

        # accessed at url: ^api/v1/carfax/$
        queryset = CarFax.objects.all()
        serializer = CarFaxSerializer(queryset, many=True)

        return Response(serializer.data)

    def retrieve(self, request, pk=None, *args, **kwargs):
        # accessed at url: ^api/v1/retrieve/{pk}/$
        queryset = CarFax.objects.all()
        record = get_list_or_404(queryset, vin__exact=pk)
        serializer = CarFaxSerializer(record, many=True)

        return Response(serializer.data)

    def create(self, request, **validated_data):
        print('TEST')
        print(request.data)
        print(validated_data)
        serializer = CarFaxSerializer(CarFax.objects.create(**validated_data))
        headers = self.get_success_headers(serializer.data)
        print(serializer.data)

        print(headers)
        return Response(serializer.data, headers=headers)

serializers.py

class CarFaxSerializer(serializers.ModelSerializer):

    class Meta:
        model = CarFax
        fields = ('vin', 'structural_damage', 'total_loss',
                  'accident', 'airbags', 'odometer', 'recalls',
                  'last_updated')

当我打印时,request.data我可以看到发送的数据。但是validated_data为空,这是我用来创建模型的字典。

JPG格式

首先,您的GetCarFax类看起来像是凌乱的:(因为您将覆盖大多数方法,但是它并没有为视图提供任何优势。因此,请将您的GetCarFax视图类更改为下面的内容,

class GetCarFax(viewsets.ModelViewSet):
    """
    This view will be used for POSTing new carfax reports to the database
    """
    queryset = CarFax.objects.all()
    serializer_class = CarFaxSerializer
    # authentication_classes = []
    permission_classes = []
    lookup_field = 'myfieldname'

这几行代码将为您处理所有CRUD操作:)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用来自validated_data的kwargs的Django Rest Framework update()

Django Rest Framework:反序列化并从validated_data获取主键

无法在Django Rest Framework序列化器的validated_data中获取非模型字段

Django Rest框架可验证的嵌套序列化器数据从validated_data中丢失

Django REST Framework:使用列表测试POST请求时出错

使用Express发出POST请求时出错

Django Rest Framework,使用MultiPartParser时查询字典为空

使用Go向本地服务器发出GET http请求时为空响应

使用Rest Assured发出POST请求时出现内部服务器错误

使用 symfoy HTTP 客户端发出 post 请求时为 URL 返回 HTTP/2 400

使用 React 的 Django API 请求为空

Django 1.6请求POST / GET为空

向 django API 发出 POST 请求时出错

Laravel 5:使用 Ajax Post 请求时请求数据为空

如何使用Advanced Rest Client发出POST请求

使用提取时,请求主体为空

使用 SendAsync 时 API 请求为空

Django中validated_data中没有foreign_key相关

在django-rest-swagger中使用APIView时如何为POST请求指定参数

在ReactJs中使用axios发送POST请求时,$ _FILES为空

使用 FormData() 时发布请求时请求正文为空

在Spring-data-rest中使用Access-Control-Request-Method发出OPTIONS请求时发生NullPointerException

如何使用jQuery发出Django Ajax请求?

如何使用Django REST API验证android用户POST请求?

即使在POST请求之后,Django中的JSONField仍保持为空

使用获取发出POST请求

使用Bash发出POST请求

Django在发出POST请求时在表单集中有多个表单时抛出错误

从独立的 React 向 Django 发出 POST 请求