首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Django识别和调试getJSON错误

使用Django识别和调试getJSON错误
EN

Stack Overflow用户
提问于 2020-03-29 01:03:20
回答 1查看 65关注 0票数 1

我的Django应用程序出现了一个错误,我似乎找不出我的生活

基本上,问题是我的getJSON调用在我的模板中失败了,我不知道为什么,因为我可以通过浏览器直接访问url,而且开发服务器也显示了200个响应。

这是我的看法

代码语言:javascript
复制
def test(request):
    cases = ConfirmedCase.objects.all()
    cases = read_frame(cases, fieldnames=['provice_state', 'country_region', 'confirmedcases','date'])
    cases['date'] = pd.to_datetime(cases['date'])

    globaltrend = globaltrend.groupby('date')[['confirmedcases','1_day_growth']].sum().reset_index()
    globaltrend['date'] = globaltrend['date'].dt.date #convert back to date
    globaltrend= globaltrend.to_dict(orient='list')
    data = {}
    data['chart_data'] = globaltrend
    data = json.dumps(data,  default=str)

    return HttpResponse(data, content_type='application/json')

这是网址

代码语言:javascript
复制
from tracker import views as tracker

urlpatterns = [
    path('test/', tracker.test, name="test"), 
]

如果我在浏览器中访问http://127.0.0.1:8000/test/,一切都很好,我看到了

代码语言:javascript
复制
{
  "chart_data": {
    "date": [
      "2020-03-26",
      "2020-03-27"
    ],
    "confirmedcases": [
      66885,
      69030,
    ],
    "1_day_growth": [
      3.21,
      3.18,
    ],
  }
}

下面是我的模板/html文件中的脚本

代码语言:javascript
复制
<script >
    $(document).ready(function(){
        var url = '{% url "test" %}'

            $.getJSON(url, function(d) {
                console.log("working");
                alert('yay')
            }).done(function(d) {
                console.log("done");
            }).fail(function(d) {
                console.log("error");
                console.log(url);
            }).always(function(d) {
                console.log("completed regardl");
            });

    });
</script>

这会一直抛出一个错误(我没有看到警报),尽管它正确地记录了url。我只是不能成功地执行回调

以下是我的开发服务器的刷新输出

代码语言:javascript
复制
[29/Mar/2020 00:53:59] "GET /test/ HTTP/1.1" 200 1498

我需要这个作为我的模板中的图表。任何帮助都是非常感谢的。

更新

我认为此错误与视图有关,因为当我将视图简化为以下内容时:

代码语言:javascript
复制
def test(request):
    data = {"hello":[1,2,3]}
    return HttpResponse(json.dumps(data, default=str), content_type='application/json')

我的getJSON调用在浏览器中开始工作(即我可以在控制台日志中看到警报和成功)

我不明白为什么原始视图直接通过url而不是通过getJSON调用工作。

EN

回答 1

Stack Overflow用户

发布于 2020-03-31 15:21:57

我解决了这个问题。这与json转储中缺少的值有关。基本上,如果视图中生成的json转储中有NaN或inf值,即使url将正确显示转储,通过ajax查询数据也会导致失败。

将这些行添加到视图中修正了全局趋势= globaltrend.replace(np.inf,0) #将inf值替换为0 globaltrend = globaltrend.replace(np.NaN,0) #替换NaN值为0的问题

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60908991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档