Django post api вызов автозаполнения request.user в поле user

serializer.save(user=request.user.profile, post=post) не работает. работает в другом представлении. Я понятия не имею, почему он не работает. Не могли бы вы мне помочь. Спасибо

//Это работает

class CurrentUserPostList(generics.ListAPIView):
serializer_class = PostSerializer
permission_classes = [permissions.IsAuthenticatedOrReadOnly]
search_fields = ['title', 'content']
filter_backends = (filters.SearchFilter,)

def get_queryset(self):
    user = self.request.user
    return Post.objects.filter(user=user.profile)

def post(self, request, *args, **kwargs):
    serializer = PostSerializer(data=request.data)
    if serializer.is_valid():
        serializer.save(user=request.user.profile)
        return Response(serializer.data, status=status.HTTP_201_CREATED)
    return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

// Это не работает

class CommentList(generics.ListAPIView):
serializer_class = CommentSerializer
permission_classes = [permissions.IsAuthenticatedOrReadOnly]

def get_queryset(self):
    return Post.objects.get(id=self.kwargs.get('pk')).comments.all()

def post(self, request, pk, format=None):
    post = get_object_or_404(Post, pk=pk)
    serializer = CommentSerializer(data=request.data)
    if serializer.is_valid():
        serializer.save(user=request.user.profile, post=post)
        return Response(serializer.data, status=status.HTTP_201_CREATED)
    return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

// models.py

class Comment(models.Model):
id = models.UUIDField(default=uuid.uuid4, unique=True, primary_key=True, editable=False)
user = models.ForeignKey(Profile, on_delete=models.CASCADE)
post = models.ForeignKey(Post, related_name='comments', on_delete=models.CASCADE)
content = models.TextField(null=True, blank=True)
last_modified = models.DateTimeField(auto_now=True)
created = models.DateTimeField(auto_now_add=True)

def __str__(self):
    return str(self.author)
Вернуться на верх