从Ajax调用Django View [英] Calling Django View from Ajax
本文介绍了从Ajax调用Django View的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用Ajax(以及Django)在按钮单击时执行一些操作.我成功调用了javascript函数,但无法调用Django视图.没有错误,但我视图中的打印语句不打印...?
I'm using Ajax (along with Django) to perform some action on button click. I successfully call the javascript function but I can't call the Django view. There are no errors but the print statement in my view doesn't print...?
urls.py
urlpatterns = patterns('polls.views',
url(r'^request_access/$', 'request_access',
name='request_access'),
)
views.py
def request_access(request):
print("DJANGO VIEW")
if request.method == "POST":
print("DATA: ", request.POST.get('request_data'))
return HttpResponse(
json.dumps(response_data),
content_type="application/json"
)
template.html
template.html
<button class="btn btn-green btn-sm" onclick="request_access(this)" id="{{ data }}"><i class="fa fa-plus"></i> Join Group</button>
javascript.js
javascript.js
function request_access($this){
console.log("button clicked");
var request_data = $this.id;
console.log("data: " + request_data);
$.post({
url: "request_access/",
data : { request_data: request_data},
success : function(json) {
$("#request-access").hide();
console.log("requested access complete");
}
})
}
推荐答案
在代码中用"ajax"替换"post",现在打印语句将在您的视图中起作用.
Replace "post" with "ajax" in the code,now the print statement will work in your view.
function request_access($this){
console.log("button clicked");
var request_data = $this.id;
console.log("data: " + request_data);
$.ajax({
url: "request_access/",
data : { request_data: request_data},
success : function(json) {
$("#request-access").hide();
console.log("requested access complete");
}
})
}
这篇关于从Ajax调用Django View的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文