jquery ajax 提交form表单 以及django后台接受

HTML

复制代码
          <form id="project_file_upload" enctype="multipart/form-data" >
              <div class="modal-body">
                   <!-- multiple 增加此属性,文件可以多选 -->
                   <input type="file"  name="file" id="file">
                   <input id = 'num_id' name="id" type="hidden" value="">
              </div>
              <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">{% trans "Close" %}</button>
                <button class="btn btn-success" type="submit" id="submit_upload_b"><i class="icon-share"></i> 上传</button>
              </div>
         {% csrf_token %}
         </form>
复制代码

 

 

 

js 代码

复制代码
   //文件上传函数
   function dispalyfiletable(url) {
        var csrftoken = getCookie('csrftoken');
        $.ajax({
            cache: false,
            type: 'POST',
            data: new FormData($('#project_file_upload')[0]),
            url: url,
            traditional:true, //为必须内容   
            //dataType:'json',  //data为json时必须
            processData: false, //为必须内容
            contentType: false, //为必须内容
            success: function(data) {

               console.log(data);



            },
            beforeSend: function(xhr, settings) {
                xhr.setRequestHeader("X-CSRFToken", csrftoken);
            }
        });
   }
复制代码

 

 

 

django后台代码

form.py  ModelForm 写法

复制代码
from django import forms
from django.forms import ModelForm
from .models import Advertisement


class UploadFileForm(ModelForm):

    class Meta:
        model = Advertisement
        localized_fields = ('__all__')

        exclude = ['add_time']
        error_messages = {
            'protype': {
                'required': '这是个必填项目',  # 生成错误信息
            },
        }
复制代码

 

 

 

        id = request.POST.get('id','')
        print(id)
        form = UploadFileForm(request.POST, request.FILES)
        file_obj = request.FILES.get('file','') #获取上传文件

 

posted on   星河赵  阅读(3120)  评论(0编辑  收藏  举报

编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示