美文网首页Django
2018-11-22 Django 上传文件

2018-11-22 Django 上传文件

作者: 多吃水果少吃肉 | 来源:发表于2018-11-22 10:37 被阅读0次
    <div class="modal fade" id="modal-add-family">
        <div class="modal-dialog">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                        <span aria-hidden="true">&times;</span></button>
                    <h4 class="modal-title">添加家系</h4>
                </div>
                <div class="modal-body">
                    <div class="box-body">
                        <form class="form-horizontal" action="/app/add_family/" method="post"
                              enctype="multipart/form-data">
                            {% csrf_token %}
                            <div class="form-group">
                                <label class="col-sm-2 control-label">编号</label>
                                <div class="col-sm-10">
                                    <input type="text" class="form-control" name="number"
                                           placeholder="系统编号">
                                </div>
                            </div>
                            <div class="form-group">
                                <label class="col-sm-2 control-label">家系名称</label>
                                <div class="col-sm-10">
                                    <input type="text" class="form-control" name="name" required="required"
                                           placeholder="家系名称">
                                </div>
                            </div>
                            <div class="form-group">
                                <label class="col-sm-2 control-label">家系图</label>
                                <div class="col-sm-10">
                                    <input type="file" class="form-control" name="file" required="required">
                                    <p class="help-block">请点击按钮上传家系图</p>
                                </div>
                            </div>
                            <input type="submit" value="Submit" class="hidden" id="add_submit"/>
                        </form>
                    </div>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-default pull-left" data-dismiss="modal">取消</button>
                    <button type="submit" class="btn btn-primary" id="add_item">添加</button>
                </div>
            </div>
        </div>
    </div>

后台接收:

@require_POST
@login_required(login_url='/app/login')
def add(request):
    number = request.POST.get("number", None)
    name = request.POST.get("name", None)
    file = request.FILES.get("file", None)
    if not name or not file:
        message = "请完善上传信息"
    else:
        try:
            family = Family(number=number, name=name, image=file)
            family.save()
            message = "添加家系成功!"
        except:
            message = "添加家系失败!"
    s = SampleList()
    return s.get(request, message=message)

Model:

def family_directory_path(instance, filename):
    maxid = max(obj.id for obj in FilePath.objects.all())
    prefix = FilePath.objects.get(id=maxid).path
    return '{0}/family/{1}/{2}'.format(prefix, instance.pk, filename)


class Family(Base):
    class Meta:
        verbose_name = '家系信息'
        verbose_name_plural = '家系信息'

    def __str__(self):
        return f'{self.pk} - {self.name}'

    def natural_key(self):
        return self.name

    number = models.CharField(max_length=64, blank=True, null=True, verbose_name='编号')
    name = models.CharField(max_length=64, blank=True, null=True, verbose_name='名称')
    image = models.ImageField(upload_to=family_directory_path, blank=True, null=True, verbose_name='家系图')
    family_disease = models.ForeignKey(FamilyDisease, blank=True, on_delete=models.SET_NULL, null=True, verbose_name='家族病史')
    family_disease_abstract = models.TextField(blank=True,null=True,verbose_name='家族病史描述')

注意点-- <form enctype="multipart/form-data"> 这里一定要写, 否则提交的只是文件名, 而且不在 FILES 里面 而是放在了 POST 里面

相关文章

  • 2018-11-22 Django 上传文件

    后台接收: Model: 注意点-- 这里一定要写, 否则提交的只是文件名, 而且不在 FILES 里面 而是...

  • Django 文件上传

    Django 文件上传 利用Django实现文件上传并且保存到指定路径下,其实并不困难,完全不需要用到django...

  • Django上传文件

    继前文的项目准备中,涉及到上传歌曲,所以有了这一过程,在项目目录下设置了资源文件夹暂存歌曲,完场云端上传后即删除所...

  • Django文件上传

    实例:为用户上传头像并回显 设置上传文件保存目录 定义Model,完成移植并执行 定义form表单 创建文件上传视...

  • Django文件上传

    本篇主要讲的是ajax下的文件上传 模板html文件内容 编写文件上传js 服务器端视图代码如下 POST提交过来...

  • 5.4 django 表单 文件上传

    文件上传: 文件上传是网站开发中非常常见的功能。这里详细讲述如何在Django中实现文件的上传功能。 前端HTML...

  • 最浅显易懂的Django系列教程(37)-文件上传

    文件上传: 文件上传是网站开发中非常常见的功能。这里详细讲述如何在Django中实现文件的上传功能。 前端HTML...

  • django 补充

    django 上传文件, 上传文件也可以过检测,不过要记得添加 request.FILES 到定制的form类中,...

  • el-upload + Django实现文件上传

    由于项目展示信息有图片,需要自己实现文件上传,通过django+vue+element-ui,实现文件上传服务+上...

  • 文件上传

    当Django在处理文件上传的时候,文件数据被保存request.FILES 。这篇文档阐述文件如何上传到内存和硬...

网友评论

    本文标题:2018-11-22 Django 上传文件

    本文链接:https://www.haomeiwen.com/subject/gigkqqtx.html