Как заставить кнопку POST фреймворка django rest работать?

У меня есть такая модель:

class Ad(models.Model) :
    title = models.CharField(
            max_length=200,
            validators=[MinLengthValidator(2, "Title must be greater than 2 characters")]
    )
    price = models.DecimalField(max_digits=7, decimal_places=2, null=True)
    text = models.TextField()
    
    
    # Shows up in the admin list
    def __str__(self):
        return self.title

Вид набора выглядит следующим образом:

class AdViewSet(viewsets.ModelViewSet):
    """
    API endpoint that allows ad to be viewed or edited.
    """
    queryset = Ad.objects.all()
    serializer_class = AdSerializer
class AdSerializer(serializers.ModelSerializer):
    class Meta:
        model = Ad
        fields = ['id', 'title', 'price', 'text']

Я сделал маршрутизатор, который я не включил сюда, потому что я не думаю, что это необходимо, чтобы показать мою проблему.

В Django Rest Framework в /api/ads/ я могу увидеть все мои предыдущие объявления, созданные с помощью django admin и ниже форму для размещения данных, которая выглядит следующим образом:

enter image description here

Когда я нажимаю на кнопку POST формы, она не делает POST запрос, а просто перезагружает страницу. Я могу подтвердить это из Firefox devtool и журнала сервера, никаких POST запросов не делается.

Итак, мой вопрос заключается в следующем: как сделать так, чтобы эта кнопка POST работала как ожидалось, чтобы я мог проверить свой сериализатор и все работало как надо?

Edit: После тестирования, кнопки put, patch и delete также не работают, они не отправляют заголовки put/patch/delete, а получают заголовки типа post

После долгих поисков я обнаружил, что проблема связана с ublock origin.

Ublock origin мешал браузеру делать запрос на localhost, поэтому я деактивировал его и теперь он работает как ожидалось.

Проверьте свой adblocker, если у вас такая же проблема.

Вернуться на верх