Я разрабатываю веб-приложение через Django и хочу получить информацию из моего javascript для просмотра Django, чтобы получить доступ к базе данных.
Я использую ajax-вызов, так как в этом сообщении показано .
Я вызываю js в html по событию onclick:
sortedTracks.html
...
<form action="{% url 'modelReco:sortVideo' video.id %}">
<input type="submit" value="Validate" onclick="ajaxPost()" />
</form>
...
clickDetection.js
//defined here
var tracksSelected = [];
//function that fill tracksSelected
function tagTrack(track_num){
if(tracksSelected.includes(track_num)){
var index = tracksSelected.indexOf(track_num);
tracksSelected.splice(index, 1);
}else{
tracksSelected.push(track_num);
}};
//ajax function
function ajaxPost(){
$.ajax({
method: 'POST',
url: '/modelReco/sortedTracks',
data: {'tracksSelected': tracksSelected},
success: function (data) {
//this gets called when server returns an OK response
alert("it worked! ");
},
error: function (data) {
alert("it didnt work");
}
});
};
Таким образом, информация, которую я хочу передать, tracksSelected
и представляет собой массив типа int [21,150,80]
views.py
def sortedTracks(request):
if request.is_ajax():
#do something
print(request)
request_data = request.POST
print(request_data)
return HttpResponse("OK")
Пост Ajax работает хорошо, но я получаю только пустой запрос Dict, подобный этому:
<QueryDict: {}>
И если я распечатаю запрос, я получаю:
<WSGIRequest: GET '/modelReco/sortedTracks/?tracksSelected%5B%5D=25&tracksSelected%5B%5D=27&tracksSelected%5B%5D=29'>
Я также пытался изменить на request_data=request.GET
, но получаю странный результат, когда данные теперь находятся в tracksSelected[]