Python api#u视图装饰器不';t使用application/x-www-form-urlencoded

Python api#u视图装饰器不';t使用application/x-www-form-urlencoded,python,django,django-rest-framework,Python,Django,Django Rest Framework,我正在读一本关于django rest框架的书 这里有一个特殊的代码,它不适合我。请求数据字段为None 视图.py @api_view(['GET', 'POST']) def cars_list(request, format=None): if request.method == 'GET': cars = CarModel.objects.all() cars_serializer = CarSerializer(cars, many=True)

我正在读一本关于django rest框架的书

这里有一个特殊的代码,它不适合我。请求数据字段为
None

视图.py

@api_view(['GET', 'POST'])
def cars_list(request, format=None):
    if request.method == 'GET':
        cars = CarModel.objects.all()
        cars_serializer = CarSerializer(cars, many=True)
        return Response(cars_serializer.data)

    elif request.method == 'POST':
        print(request.data.get('manufacturing_date'))
        car_serializer = CarSerializer(data=request.data)
        if car_serializer.is_valid():
            car_serializer.save()
            return Response(car_serializer.data, status=status.HTTP_201_CREATED)

    return Response(car_serializer.errors, status=status.HTTP_400_BAD_REQUEST)
汽车模型有一个字段“制造日期”,我正试图打印该字段

使用
ModelSerializer
创建
CarSerializer

如果我使用
curl
提交帖子时没有提及默认情况下
application/x-www-form-urlencoded
的“内容类型”,我会看到请求对象是
None

但是,这些选项支持所有3个解析器

curl -iX OPTIONS http://localhost:8000/cars/3
输出:

{
  "name": "Car Detail",
  "description": "",
  "renders": [
    "application/json",
    "text/html"
  ],
  "parses": [
    "application/json",
    "application/x-www-form-urlencoded",
    "multipart/form-data"
  ]
}
我试图打印请求数据,但得到“无”
print(request.data.get('manufacturing_date'))
cars_list
基于功能的视图中

当我将内容类型设置为
application/json

使用django-1.10和djangorestframework-3.6.3

之后,我检查了文档 并补充说, “parser_class”装饰器包括所有3个解析器,如下面的示例所示:

@parser_classes((JSONParser,FormParser, MultiPartParser))
但“表单编码”数据仍然不走运