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
}
GitHub Repo
I am also facing the same issue when I try to add the owner field manually in request.data.
my serializer class
fields = ("file", "name", "size", "owner")
in my views
request.data['owner'] = request.user
file_serializer = FileSerializer(data=request.data)
if file_serializer.is_valid():
file_serializer.save()
in my Model
owner = models.OneToOneField(User, primary_key=True, on_delete=models.CASCADE)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With