Я занимаюсь разработкой инфраструктуры пространственных данных.Он основан на веб-приложении, созданном с помощью Django.В веб-приложении есть карта, на которой можно рисовать многоугольники.На основе нарисованного вами многоугольника конкретные данные должны быть возвращены клиенту.
Таким образом, поток выглядит следующим образом: вы ставите точки на карту, после третьей точки она становится многоугольником.Вы нажимаете кнопку, которая запускает функцию putData js и отправляет данные в соответствующее представление с помощью запроса GET, и представление помещает данные в таблицу данных postgres.Все нормально до этого момента.
В обратном вызове функции putData я указываю еще один запрос на получение, без данных.Представление, которое обрабатывает этот запрос, получает последнюю строку из указанной выше таблицы postgres, делает запросы к другой базе данных со значениями из последней строки и отображает результат запроса с помощью html-страницы.Проблема в том, что визуализация никогда не происходит.Страница, на которой я нажал кнопку, остается неизменной, и перенаправление не происходит.
TL; DR: я хочу поместить данные в таблицу postgres с помощью запроса get, получить значения из этой таблицы с помощью запросавторой таблицы и рендеринга второй HTML-страницы со значениями, которые я получаю из второго источника данных.
main.js
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
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
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,
)
Подскажите, пожалуйста, в чем могут быть причины этого?Я что-то упустил?
Я уверен, что функция обратного вызова - не лучший обходной путь для этой проблемы, поэтому я открыт для лучших решений.