這是我的serializers.py:
from rest_framework import serializers
from .models import product
class productSerializer(serializers.ModelSerializer):
class Meta:
model= product
fields="__all__"
視圖.py:
from django.shortcuts import render
from .models import *
from rest_framework import viewsets
from .serializers import productSerializer
from rest_framework.parsers import JSONParser
class productviewset(viewsets.ModelViewSet):
queryset=product.objects.all()
serializer_class=productSerializer
當我想發布多個這樣的內容時:
[
{
"Number": 1,
"name": "1005001697316642",
"image": "https://",
"description": "fffffffff",
"price": "USD 23.43",
"buy": "https://"
},
{
"Number": 2,
"name": "1005002480978025",
"image": "https://",
"description": "dffdfdddddddddddddd",
"price": "USD 0.89",
"buy": "https://"
}
]
我收到此錯誤:
HTTP 400 錯誤請求
允許:GET、POST、HEAD、OPTIONS
內容型別:應用程式/json
變化:接受
{ "non_field_errors": [ "無效資料。需要字典,但得到了串列。" ] }
我應該怎么做才能發布多個內容?
uj5u.com熱心網友回復:
你必須重寫create方法以允許多個物件,所以我們將在繼承的類的范圍內重寫它ModelViewSet,如下所示:
def create(self, request):
serialized = MovieTicketSerializer(data=request.data, many=True)
if serialized.is_valid():
serialized.save()
return Response(serialized.data, status=status.HTTP_201_CREATED)
return Response(serialized._errors, status=status.HTTP_400_BAD_REQUEST)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/482993.html
標籤:Python django django-rest-framework
