我正在通过Django开发一个web应用程序,我想从javascript中获取信息到Django视图,以便访问数据库。你知道吗
我将ajax调用用作this post shows。 我通过onclick事件调用html中的js:
你知道吗排序跟踪.html你知道吗
...
<form action="{% url 'modelReco:sortVideo' video.id %}">
<input type="submit" value="Validate" onclick="ajaxPost()" />
</form>
...
你知道吗单击Detection.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]
你知道吗视图.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[]
根据我访问的数据,这是在ajax请求发送可以直接访问。 例如:
正确的语法是数据:{tracksSelected:tracksSelected},
我试图知道为什么如果我在做
request_data=request.GET
,我会得到这样的数据tracksSelected[]
,并且只得到它的最后一个元素。你知道吗我找到了一种方法来避免在我的数据中使用数组(tracksSelected)on this link 这使我能够:
在视图.py你知道吗
而且在单击Detection.js你知道吗
这个小把戏奏效了,我可以得到这样的数组数据,
print(request_data)
返回我的数组,如[21,25,27]
谢谢你帮助我!你知道吗
相关问题 更多 >
编程相关推荐