Django接受 ajax传过来的json

layui使用ajax传数据:

            //监听提交
            form.on('submit(add)', function(data){
                $.ajax({
                    cache: false,
                    url:'{% url "Task_add" %}',
                    method:'post',
                    dataType:'json',
                    data:data.field,
                    async: true,
                    success: function (res) {
                        if(res.status == 'success'){
                            layer.msg('提交成功' + res.msg, {icon: 1, time: 1000});
                            setTimeout("parent.location.reload()", 1100);
                        }else if (res.status == 'fail'){
                            layer.msg('提交失败' + res.msg, {icon: 2, time: 1000});
                            setTimeout("parent.location.reload()", 1100);
                        }
                    },
                    error: function () {
                        layer.msg('提交失败error' + res.msg, {icon: 2, time: 1000});
                        setTimeout("parent.location.reload()", 1100);
                    }
                });
                return false;
            });

django view接受数据

使用forms.ModelForm验证表单,再保存。

class TaskAddForm(forms.ModelForm):
    class Meta:
        model = Tasklist
        fields = ['title', 'content', 'category']


class TaskAddView(View):
    def get(self, request):
        all_categories = Categories.objects.all()
        return render(request, "task-add.html", {
            "all_categories": all_categories
        })

    def post(self, request):
        TaskAdd_form = TaskAddForm(request.POST)
        if TaskAdd_form.is_valid():
            instance = TaskAdd_form.save(commit=False)
            instance.fromUser = request.user
            instance.toUser = MANAGE_USER
            instance.code = self.generate_order_sn()
            instance.save()
            return HttpResponse('{"status":"success", "msg":"添加成功"}', content_type='application/json')
        else:
            return HttpResponse('{"status":"fail", "msg":"添加失败"}', content_type='application/json')

    def generate_order_sn(self):  # 编码
        # 当前时间+随机数
        from random import Random
        random_ins = Random()
        order_sn = "{time_str}{ranstr}".format(time_str=time.strftime("%Y%m%d%H%M%S"), ranstr=random_ins.randint(10, 99))
        return order_sn

猜你喜欢

转载自blog.csdn.net/xiguatony/article/details/81702604