前端代码:
let sbmt = function(data){
layui.use('layer', function() {
var layer = layui.layer;
$.ajax({
url: "{% url 'cutover:maintain' %}",
data: data,
dataType: 'json',
type: 'post',
traditional: true,
success: function (data) {
if (data.status == 1) {
console.log(data.msg);
//发异步,把数据提交给Python
layer.alert(data.msg, {icon: 1}, function () {
let index = parent.layer.getFrameIndex(window.name);
//关闭当前frame
parent.layer.close(index);
parent.window.location.reload();
}, 1000);
setTimeout(function () {
parent.window.location.reload();
}, 1000);
} else {
console.log(data.msg);
layer.msg(data.msg, {icon: 2, time: 3000});
$("#mt_staging").removeAttr('disabled');
$("#mt_submit").removeAttr('disabled');
}
},
});
});
};
{% if level_type == 2 or level_type == 3 %}
{% for ck in cut_obj.checknode_set.all %}
eval('var bf{{ ck.id }}');
bf{{ ck.id }}= UE.getEditor('bf_script' + {{ck.id}}, {
'serverUrl': '/ueditor/upload/',
toolbars: [[
'simpleupload', 'insertimage', 'attachment'
]],
});
bf{{ ck.id }}.addListener("ready", function () {
// editor准备好之后才可以使用
bf{{ ck.id }}.setContent('{{ck.cutover_before|safe}}');
});
{% endfor %}
{% for ck in cut_obj.checknode_set.all %}
eval('var af{{ ck.id }}');
af{{ ck.id }} = UE.getEditor('af_script' + {{ck.id}}, {
'serverUrl': '/ueditor/upload/',
toolbars: [[
'simpleupload', 'insertimage', 'attachment'
]],
});
af{{ ck.id }}.addListener("ready", function () {
// editor准备好之后才可以使用
af{{ ck.id }}.setContent('{{ck.cutover_after|safe}}');
//
});
{% endfor %}
let data = {};
data['level_type'] = {{ level_type }};
data['id'] = {{ cut_obj.id }}
$("#mt_staging").click(function () {
$("#mt_staging").attr("disabled", "true");
$("#mt_submit").attr("disabled", "true");
data['staging'] = 1;
{% for ck in cut_obj.checknode_set.all %}
data['bf{{ ck.id }}'] = bf{{ ck.id }}.getContent();
data['af{{ ck.id }}'] = af{{ ck.id }}.getContent();
{% endfor %}
sbmt(data)
});
$("#mt_submit").click(function () {
$("#mt_staging").attr("disabled", "true");
$("#mt_submit").attr("disabled", "true");
{% for ck in cut_obj.checknode_set.all %}
data['bf{{ ck.id }}'] = bf{{ ck.id }}.getContent();
data['af{{ ck.id }}'] = af{{ ck.id }}.getContent();
{% endfor %}
sbmt(data)
});
python 后端动态生成变量接收代码:
def maintain(request):
id = request.POST.get('id')
cut_obj = cutover.objects.filter(id=id).first()
cks = cut_obj.checknode_set.all()
level_type = request.POST.get('level_type')
staging = int(request.POST.get('staging',0))
bf,af = {},{}
if int(level_type) in (2,3):
for node in cks:
bf['bf'+str(node.id)] = request.POST.get('bf'+str(node.id))
af['af'+str(node.id)] = request.POST.get('af{}'.format(node.id))
CheckNode.objects.filter(cutover=cut_obj,id=node.id).update(
cutover_before=bf['bf'+str(node.id)],
cutover_after=af['af'+str(node.id)],
staging=staging
)
data = {
'msg':'保存成功',
'status':1
}
return JsonResponse(data)