Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 使用Django的JSON数据_Jquery_Django_Json_Post - Fatal编程技术网

Jquery 使用Django的JSON数据

Jquery 使用Django的JSON数据,jquery,django,json,post,Jquery,Django,Json,Post,我正在使用JRating插件为JQuery设置一个评级系统。我让所有的前端工作正常,并且正在努力将数据存储到我的数据库中 通过我的研究,使用Django使用jquery插件存储数据的最佳方法似乎是发布一个JSON对象。不幸的是,(幸运的是!)我对JSON完全是个新手 我找到的包含最相关信息的帖子可以在这里找到: 为了简单起见,我将展示一个通用的、硬编码的JSON对象,我正试图将其传递给django视图以存储在数据库中。我目前有这个对象的工作,并能够在页面上引用它 <!-- jquery i

我正在使用JRating插件为JQuery设置一个评级系统。我让所有的前端工作正常,并且正在努力将数据存储到我的数据库中

通过我的研究,使用Django使用jquery插件存储数据的最佳方法似乎是发布一个JSON对象。不幸的是,(幸运的是!)我对JSON完全是个新手

我找到的包含最相关信息的帖子可以在这里找到:

为了简单起见,我将展示一个通用的、硬编码的JSON对象,我正试图将其传递给django视图以存储在数据库中。我目前有这个对象的工作,并能够在页面上引用它

<!-- jquery in template -->
var testJSON = [
    { "firstName":"John" , "lastName":"Doe" },
    { "firstName":"Anna" , "lastName":"Smith" },
    { "firstName":"Peter" , "lastName": "Jones" }
];

$.post('/blogsearch/setrating/', {"testJSON":testJSON}, function(msg)
{
    if(msg.error == "yes"){console.log('Error Found: '+ msg.errorMsg);}
});
我愿意接受任何建议,包括完全修改如何传递要在django视图中使用的JSON数据。

使用来反序列化JSON数据,只需使用来创建和保存对象:

import json
import models.Mymodel
data = json.loads(request.POST['testJSON'])
for elem in data:
    m = MyModel(elem)
    m.save()

对于JS端,请查看提交JSON请求。

请参阅如何在Ajax请求中包含CSRF令牌。

这是CSRF的问题,我在传递JSON对象时遇到403错误


我在主js文件中包含了来自的代码,我需要在源html页面中包含{%csrf_token%}。

您到底遇到了什么问题?JS还是Python?我在JS上遇到了麻烦。如果我能让数据返回到我的视图中(在本例中,通过一个简单的HttpResponse),我最好继续剩下的部分。谢谢。查看控制台日志,它似乎试图在Post中传递JSON对象,但收到403权限错误。加载资源失败:服务器对post的响应状态为403(禁止),是否需要与JSON请求一起传递CSRF令牌?
import json
import models.Mymodel
data = json.loads(request.POST['testJSON'])
for elem in data:
    m = MyModel(elem)
    m.save()