通过(ajax/javascript)发布到 django 视图打印空查询集
Posted
技术标签:
【中文标题】通过(ajax/javascript)发布到 django 视图打印空查询集【英文标题】:Post via (ajax/javascript) to django view printing empty queryset 【发布时间】:2017-06-30 17:57:29 【问题描述】:如果使用 jquery,我正在尝试使用更多的原生 javascript。我使用 $.post 进行 ajax 调用没有问题,但我似乎无法让它与 vanilla javascript 一起使用。这是我的 ajax 调用:
$(document).ready(function ()
$('#addAssignment').click(function ()
$('#addAssignmentModal').modal('toggle');
);
$('#submitAssignment').click(function ()
if(checkModal())
var assignment =
title: $('#newAssignmentTitle').val(),
type: $('#assignmentSelection').val(),
date: $('#newAssignmentDate').val(),
details: $('#newAssignmentDetails').val()
console.log(assignment);
submitAssignment(assignment);
);
);
function submitAssignment(assignment)
var request = new XMLHttpRequest();
request.onreadystatechange = function()
if (this.readyState == 4 && this.status == 200)
//Do stuff
;
request.open("POST", '/data/api/create-assignment/', true);
request.setRequestHeader('X-CSRFToken', cookies['csrftoken']);
//assignment is equal to: title: "Title", type: "Homework", date: "02/18/2017", details: "Detais"
request.send(JSON.stringify(assignment));
当我尝试在我的 Djano 视图中打印出数据时,它每次都会打印出一个空的查询集。
def createAssignment(request):
if request.method == 'POST':
print(request.POST) # this prints an empty queryset
# assignment = Assignments()
# assignment = request.POST.get('assignment')
# assignment.save()
data =
data['status'] = "Success"
return HttpResponse(json.dumps(data), content_type="application/json")
else:
data =
data['status'] = "Data must be sent via POST"
return HttpResponse(json.dumps(data), content_type="application/json")
如何准备我的数据并正确接收?
更新:
我能够得到这个工作。 ajax 调用保持不变。为了在我的 django 视图中打印数据,我使用了以下代码:
body_unicode = request.body.decode('utf-8')
body = json.loads(body_unicode)
print(body)
打印正文给出以下内容:
'details': 'Here are some details', 'title': 'Title', 'date': '02/18/2017', 'type': 'Homework'
【问题讨论】:
【参考方案1】:body_unicode = request.body.decode('utf-8')
body = json.loads(body_unicode)
print(body)
【讨论】:
以上是关于通过(ajax/javascript)发布到 django 视图打印空查询集的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 php/ajax/javascript 动态检测蜂窝运营商? [关闭]
JSF 1.1-不刷新页面调用backing bean的动作方法(通过ajax/javascript)
通过 Ajax Javascript 调用 SAP SOAP Web 服务——绕过跨域策略