在我使用Gridster的应用程序中,我正在更改窗口小部件位置,然后将其保存为json变量。我想将此json变量存储在django数据库中。 为此,我不明白我应该如何定义views.py中的函数和models.py中可以存储json变量的类
我的HTML / JS模板是
var URL = "{% url 'my_view_url' %}";
$('.js-seralize-update').on('click', function () {
var s = gridster.serialize();
updated_grid=JSON.stringify(s);
$('#log').val(updated_grid);
function updategridster(){
var data = updated_grid;
$.post(URL, data, function(response){
if(response === 'success'){ alert('Yay!'); }
else{ alert('Error! :('); }
});
}
});
我的views.py
def save_grid(request):
if request.method == 'POST':
# Some code to get json variable and store it to model
return HttpResponse('success') # if everything is OK
我想在与view.py对应的models.py中编写某种类,以便保存JSON变量
EDIT1 我的models.py是
from django.db import models
from django.utils import timezone
from django.utils import simplejson as json
class update_grid(models.Model):
data = JSONField(null=True, blank=True)
我只想将视图中的数据发送到此模型(如果正确)
修改2
我的JS脚本更新如下
var URL = "{% url 'save-grid' %}";
$('.js-seralize-update').on('click', function () {
var s = gridster.serialize();
updated_grid=JSON.stringify(s);
$('#log').val(updated_grid);
function updategridster(updated_grid){
var data = updated_grid;
$.post(URL, data, function(response){
if(response === 'success'){ alert('Yay!'); }
else{ alert('Error! :('); }
});
}
updategridster(updated_grid);
});
现在我收到此错误
POST http://localhost:8000/calendar_grid/save-grid net::ERR_CONNECTION_ABORTED jquery.min.js:2
答案 0 :(得分:2)
如果您使用PostgreSQL,则内置JSONField。
否则有几个类似django-jsonfield的实现,对于管理员我将其与django-jsoneditor配对
然后,您可以将JSON数据保存在单个字段中,对于内置的情况,您甚至可以对JSON结构中的特定键执行查询/过滤。