Как заставить кнопку 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 и ниже форму для размещения данных, которая выглядит следующим образом:
Когда я нажимаю на кнопку POST формы, она не делает POST запрос, а просто перезагружает страницу. Я могу подтвердить это из Firefox devtool и журнала сервера, никаких POST запросов не делается.
Итак, мой вопрос заключается в следующем: как сделать так, чтобы эта кнопка POST работала как ожидалось, чтобы я мог проверить свой сериализатор и все работало как надо?
Edit: После тестирования, кнопки put, patch и delete также не работают, они не отправляют заголовки put/patch/delete, а получают заголовки типа post
После долгих поисков я обнаружил, что проблема связана с ublock origin.
Ublock origin мешал браузеру делать запрос на localhost, поэтому я деактивировал его и теперь он работает как ожидалось.
Проверьте свой adblocker, если у вас такая же проблема.