首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >发送数据,查询基于该数据的表并呈现

发送数据,查询基于该数据的表并呈现
EN

Stack Overflow用户
提问于 2018-11-29 19:20:18
回答 1查看 44关注 0票数 0

我正在开发一个空间数据基础设施。它基于Django创建的一个with应用程序。webapp有一张地图,你可以在上面画多边形。根据您绘制的多边形,应将特定数据返回给客户端。

流程是这样的:你把点放在地图上,它在第三个点之后变成一个多边形。您可以按一个按钮,该按钮触发一个putData js函数,并使用GET请求将数据发送到appropiate &该视图将数据放入postgres。在此之前一切都很好。

在putData函数的成功回调中,我指定了另一个get请求,没有数据。处理此请求的视图从上面指定的postgres表中获取最后一行,使用最后一行的值对另一个datatable进行查询,并使用html页面呈现查询结果。问题是渲染永远不会发生。我按下按钮的页面保持原样,不发生重定向。

TL;DR:我想将数据放入带有get请求的postgres表中,从该表中获取值,查询第二个表,并使用从第二个datatable获得的值呈现第二个html页面。

main.js

代码语言:javascript
复制
function putData() {
    //Biggest and lowest values from the arrays.
    console.log('YAYYYYYYYYYYYYYYYYYYYYYYYYYYYYY');
    var maxX = Math.max(...boundingBox.X);
    var minX = Math.min(...boundingBox.X);
    var maxY = Math.max(...boundingBox.Y);
    var minY = Math.min(...boundingBox.Y);
    //AJAX request to getdata view with the four coorinates.
    $.ajax({
        url: "getdata/",
        type: "get",
        data: {'max_x': maxX, 'min_x': minX, 'max_y': maxY, 'min_y': minY},
        success: function () {
            console.log("Success!");
            $.ajax({
                url: "dowload",
                type: "get",
                success: function () {
                    console.log("Success!");
                }
            })
        }
    })
}

get_data.py

代码语言:javascript
复制
def get_data(request):
    maxX = request.GET['max_x']
    minX = request.GET['min_x']
    maxY = request.GET['max_y']
    minY = request.GET['min_y']
    extents = {
        'max_x': maxX,
        'min_x': minX,
        'max_y': maxY,
        'min_y': minY,
    }

    query = Query(max_x=maxX, min_x=minX, max_y=maxY, min_y=minY, username=username)
    query.save()
    return HttpResponse(extents)

printdata.py

代码语言:javascript
复制
def download(request):
    last_query = Query.objects.last()
    extents = {
        'max_x': last_query.max_x,
        'min_x': last_query.min_x,
        'max_y': last_query.max_y,
        'min_y': last_query.min_y,
    }
    """
    The **query** to the second datatable happens here.
    """
    return render(
        request,
        'output.html',
        context=query_result,
    )

你能告诉我原因是什么吗?我是不是漏掉了什么?

我确信回调函数不是解决这个问题的最佳方法,所以我也可以找到更好的解决方案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-29 19:52:32

据我所知,您正在尝试为问题的第二部分呈现ajax调用中的django模板。我觉得没必要。就像这样:

代码语言:javascript
复制
  url: "getdata/",
        type: "get",
        data: {'max_x': maxX, 'min_x': minX, 'max_y': maxY, 'min_y': minY},
        success: function () {
            console.log("Success!");
            window.location = '/download'  // will forcefully change the url of the browser to load the page.
        }
    })
}

另外,第一个视图的响应应该是一个JsonResponse:

代码语言:javascript
复制
from django.http import JsonResponse


def get_data(request):
    maxX = request.GET['max_x']
    minX = request.GET['min_x']
    maxY = request.GET['max_y']
    minY = request.GET['min_y']
    extents = {
        'max_x': maxX,
        'min_x': minX,
        'max_y': maxY,
        'min_y': minY,
    }

    query = Query(max_x=maxX, min_x=minX, max_y=maxY, min_y=minY, username=username)
    query.save()
    return JsonResponse(extents)  # this is if you want to use these json data in Javascript
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53546124

复制
相关文章

相似问题

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