首页 > 解决方案 > Django Rest Framework - 错误请求

问题描述

我正在尝试从我的前端调用我的 Django 项目的 API 端点。

端点位于 URL 处/tst/。我需要从该端点检索数据,以便用该数据填充我的页面。

我为此使用了 ajax 请求,但我不断收到错误消息400 - BAD REQUEST,但我不知道为什么会发生这种情况,因为 API 端点位于正确的 URL 上。

function doPoll(){

    $.post('http://localhost:8000/tst/', function(data) {
        console.log(data[0]);
        $('#data').text( data[0].data);
        setTimeout(doPoll, 10);
    });
} 

我的端点的观点:

class tstList(generics.ListCreateAPIView):
    queryset = tst.objects.using('screener').all()
    serializer_class = tstSerializer

模型.py

 class tst(models.Model):
        ticker = models.CharField(max_length=15)
        Price = models.FloatField()

        def save(self, *args, using=None, **kwargs):
            super(tst, self).save(*args, using='screener', **kwargs)

json 看起来像这样:

{"ticker":["TEST"],"Price":["4847"]}

我在回复中得到了什么:

{"ticker":["This field is required."],"Price":["This field is required."]}

标签: javascriptpythondjangoajaxdjango-rest-framework

解决方案


我建议使用 Axios 进行 HTTP 请求调用而不是 ajax。axios:https ://github.com/axios/axios

看起来,您必须在端点视图中实现获取请求。

class tstList(generics.ListCreateAPIView):
  queryset = tst.objects.using('screener').all()
  serializer_class = tstSerializer
  
  def get(self, request, *args, **kwargs):
    return self.create(request, *args, **kwargs)

推荐阅读