尝试发布请求多对多关系时出错
问题是
当我在请求中放入列表时,它显示错误:“类型不正确。预期的 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
}
最佳答案
当我尝试在 request.data 中手动添加 owner 字段时,我也面临同样的问题。
我的序列化类
fields = ("file", "name", "size", "owner")
在我看来
request.data['owner'] = request.user
file_serializer = FileSerializer(data=request.data)
if file_serializer.is_valid():
file_serializer.save()
在我的模型中
owner = models.OneToOneField(User, primary_key=True, on_delete=models.CASCADE)
关于django - "Incorrect type. Expected pk value, received list."错误 DRF React,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66984710/