【发布时间】:2021-07-03 04:27:09
【问题描述】:
尝试发布请求多对多关系时出错
问题是
当我将列表放入请求时它显示错误:“类型不正确。预期的 pk 值,接收列表。” .但它是m2m领域所以我怎么能
查看
class PostList(generics.ListCreateAPIView):
queryset = Post.objects.all()
serializer_class = serializers.PostSerializer
permission_classes = [permissions.IsAuthenticatedOrReadOnly]
parser_classes = (MultiPartParser, FormParser)
def post(self, request, *args, **kwargs):
print(request.data['categories'])
file_serializer = serializers.PostSerializer(data=request.data)
print(request.data.dict())
if file_serializer.is_valid():
print(request.data)
file_serializer.save(owner=self.request.user)
return Response(file_serializer.data, status=status.HTTP_201_CREATED)
else:
return Response(file_serializer.errors, status=status.HTTP_400_BAD_REQUEST)
序列化器
class PostSerializer(serializers.ModelSerializer):
owner = serializers.ReadOnlyField(source='owner.username')
comments = serializers.PrimaryKeyRelatedField(many=True,queryset=Comment.objects.all())
categories = serializers.PrimaryKeyRelatedField(many=True,queryset=Category.objects.all())
class Meta:
model = Post
fields = ['id', 'title', 'body','owner','notify_users' ,'comments', 'categories','image']
我发送的请求
{
'title': 'my demo Title',
'body': 'it is my demo /nCode for the desc for body',
'categories': ['1', '2', '3', '4', '5', '6', '7'],
'image': image
}
此代码没有错误
{
'title': 'my demo Title',
'body': 'it is my demo /nCode for the desc for body',
'categories': '1',
'image': image
}
【问题讨论】:
标签: django django-models django-rest-framework django-views m2m