Задать вопрос
@ibragim_2008

Почему не добавляются post запросы в drf?

есть сериализатор который работает при get запросах но не работает при post запросах и выкидывает ошибку после is_valid()

Сериализатор:
class Game_serializer(serializers.ModelSerializer):
    class Meta:
        model = Game
        fields = '__all__'


Модель:
class Game(models.Model):
    name = models.CharField(verbose_name='Название', max_length=300)
    year = models.IntegerField(verbose_name='Год выхода')
    description = models.TextField(verbose_name='Описание', max_length=10000)
    studio = models.CharField(verbose_name='Разработчик', max_length=300)
    rating = models.FloatField(verbose_name='Рейтинг')
    poster = models.ImageField(verbose_name='Постер')
    rubric = models.ForeignKey(verbose_name='Рубрика', to='Rubric', on_delete=models.PROTECT, null=True, blank=True)

    class Meta:
        verbose_name = 'Игра'
        verbose_name_plural = "Игры"

class Rubric(models.Model):
    name = models.CharField(verbose_name='Название', max_length=300)

    def __str__(self):
        return self.name

    class Meta:
        verbose_name = 'Рубрика'
        verbose_name_plural = 'Рубрики'


View:
class Games_api(APIView):
    def get(self, request):
        games = Game.objects.all()
        game_serializer = Game_serializer(instance=games, many=True)

        return Response(game_serializer.data)

    def post(self, request):
        serializer = Game_serializer(data=request.data, many=True)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data, status=status.HTTP_201_CREATED)

        else:
            return Response(serializer.data, status=status.HTTP_400_BAD_REQUEST)
  • Вопрос задан
  • 57 просмотров
Подписаться 1 Средний 2 комментария
Пригласить эксперта
Ваш ответ на вопрос

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

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