[ajax] 带文件ajax请求后端

html

  {#// AJAX提交注册的数据#}
    $("#reg-submit").click(function () {

        var formData = new FormData();
        formData.append("username", $("#id_username").val());
        formData.append("password", $("#id_password").val());
        formData.append("pic", $("#id_pic")[0].files[0]);
        formData.append("csrfmiddlewaretoken", $("[name='csrfmiddlewaretoken']").val());

        $.ajax({
            url: "/register/",
            type: "post",
            {#ajax传文件加参数#}
            processData: false,
            contentType: false,
            data: formData,
            success:function (data) {
                if (data.status){
                    {# 有错误就展示错误#}
                    {#// console.log(data.msg);#}
                    {#// 将报错信息填写到页面上#}
                    $.each(data.msg, function (k,v) {
                        // console.log("id_"+k, v[0]);
                        // console.log($("#id_"+k));
                        $("#id_"+k).next("span").text(v[0]).parent().parent().addClass("has-error");
                    })

                }else {
                    location.href = data.msg;
                }
            }
        })
    });

    {#// 将所有的input框绑定获取焦点的事件,将所有的错误信息清空#}
    $("form input").focus(function () {
        $(this).next().text("").parent().parent().removeClass("has-error");
    })

views

def register(request):
    if request.method == "GET":
        reg_obj = RegForm()
        return render(request, "register.html", {"reg_obj": reg_obj})
    else:
        ret = {"status": 0, "msg": ""}
        reg_obj = RegForm(request.POST, request.FILES)
        if reg_obj.is_valid():
            # file = reg_obj.cleaned_data["pic"]
            # with open(f"pics/{file.name}", "wb") as f:
            #     for chunk in file.chunks():
            #         f.write(chunk)
            models.UserInfo.objects.create_user(**reg_obj.cleaned_data)
            ret["msg"] = "/index/"
            return JsonResponse(ret)
        else:
            ret["status"] = 1
            ret["msg"] = reg_obj.errors
            return JsonResponse(ret)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Moke丶青

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值