如何使 django rest framework POST 按钮工作?

How to make the django rest framework POST button work?

我有这样一个模型:

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']

我制作了我没有包含在这里的路由器,因为我认为不需要它来显示我的问题。

/api/ads/ 的 Django Rest Framework 中,我可以看到我以前使用 django 管理创建的所有广告,并在 post 数据表单下方看到如下所示:

当我单击表单的 POST 按钮时,它不会发出 POST 请求,它只是重新加载页面。我可以从 Firefox devtool 和服务器日志中确认,没有发出 POST 请求。

所以我的问题是:如何让这个 POST 按钮按预期工作,这样我就可以检查我的序列化程序以及一切是否正常工作?

Edit: 经过测试,put、patch、delete 按钮也不起作用,它们不发送put/patch/delete header,只是获取header like post

经过大量研究,我发现问题出在 ublock 来源。

Ublock origin 阻止浏览器在本地主机上发出请求,所以我停用了它,现在它按预期工作了。

如果您遇到同样的问题,请检查您的广告拦截器。