MalikDeveloper2077
@MalikDeveloper2077

Почему HTTP 400 при создании комментария DRF?

Есть модель:
class Comment(models.Model):
    """Comment for a quiz"""
    quiz = models.ForeignKey(
        Quiz,
        on_delete=models.CASCADE,
        verbose_name='Викторина',
        related_name='comments'
    )
    author = models.ForeignKey(
        settings.AUTH_USER_MODEL,
        on_delete=models.PROTECT,
        verbose_name='Автор',
        related_name='comments'
    )
    body = models.TextField('Текст')


Посылаю запрос через ajax, все данные передаются, проверял (в data: {} body и csrf token)
Далее View
class CommentCreateAPI(APIView):
    """API for create a quiz comment. Get a quiz slug"""
    def post(self, request, slug):
        quiz = get_object_or_404(Quiz, slug=slug)
        serializer = CommentSerializer(data=request.data)
        if serializer.is_valid():
            serializer.save(author=request.user, quiz=quiz)
            return Response(serializer.data, status=status.HTTP_201_CREATED)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)


И сериализатор
class CommentSerializer(serializers.ModelSerializer):
    class Meta:
        model = Comment
        fields = ['author', 'quiz', 'body']


Все данные в request.data приходят однако мне вылетает HTTP 400, в чём проблема и как решить?/
  • Вопрос задан
  • 79 просмотров
Решения вопроса 1
MalikDeveloper2077
@MalikDeveloper2077 Автор вопроса
Убрал из сериализатора author и quiz. Всё
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы