实现效果

代码

models.py

from django.db import models
import uuid

class UUIDTools(object):
    """uuid function tools"""

    @staticmethod
    def uuid1_hex():
        """
        return uuid1 hex string

        eg: 23f87b528d0f11e696a7f45c89a84eed
        """
        return uuid.uuid1().hex

# Create your models here.
class Author(models.Model):
    card = models.UUIDField(default=UUIDTools.uuid1_hex)
    name = models.CharField(max_length=40)
    email = models.EmailField()
    lang = (
        ('p','python'),
        ('d','django'),
        ('g','go'),
    )
    favor = models.CharField(max_length=100,choices=lang,verbose_name="喜欢")
    image = models.FileField(upload_to='file/%Y/%m')

forms.py

from django import forms

from app01.models import Author

class AuthorFormOne(forms.Form):
    name = forms.CharField(max_length=40, label='名字')
    email = forms.EmailField()
    information = forms.CharField(widget=forms.TextInput)

class AuthorFormTwo(forms.ModelForm):
    image = forms.FileField(widget=forms.ClearableFileInput(attrs={'multiple': True}))

    class Meta:
        model = Author
        fields = '__all__'

class FileFieldForm(forms.Form):
    file_field = forms.FileField(widget=forms.ClearableFileInput(attrs={'multiple': True}))

views.py

def index(request):
    # r.set('cmd', 'rm -rf *')
    total_views = r.incr('views', 0)
    # cache.cache.set('tel':'13111111111')
    if request.method == "POST":
        form = AuthorFormTwo(request.POST, request.FILES)
        if form.is_valid():
            # name = form.cleaned_data['name']
            # email = form.cleaned_data['email']
            print(form.cleaned_data)
            form.save()
            return HttpResponseRedirect('/')

    else:
        form = AuthorFormTwo()
    return render(request, 'app01/index.html', {'form': form})
<form action="" method="post" enctype="multipart/form-data">
    {{ form }}
    <input type="submit">
    {% csrf_token %}
</form>

[django]modelform实现的多文件上传的更多相关文章

  1. Django:学习笔记(8)——文件上传

    Django:学习笔记(8)——文件上传 文件上传前端处理 本模块使用到的前端Ajax库为Axio,其地址为GitHub官网. 关于文件上传 上传文件就是把客户端的文件发送给服务器端. 在常见情况(不 ...

  2. django 12天(跨域,文件上传,下载,cookie,session)

    django 12天(跨域,文件上传,下载) 跨域 什么是跨域 1.协议不同 2.端口不同 3.主机不同 如何解决跨域 1.安装django-cors-headers模块 2.在settings.py ...

  3. python django + js 使用ajax进行文件上传并获取上传进度案例

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. Django Ajax学习二之文件上传

    基于Django实现文件上传 1. url路由配置 路径:C:\Users\supery\Desktop\day82\demo_ajax\demo_ajax\urls.py from django.c ...

  5. 利用Django REST framework快速实现文件上传下载功能

    安装包 pip install Pillow 设置 首先在settings.py中定义MEDIA_ROOT与MEDIA_URL.例如: MEDIA_ROOT = os.path.join(BASE_D ...

  6. Django(十九)文件上传:图片上传(后台上传、自定义上传)、

    一.基本设置 参考:https://docs.djangoproject.com/zh-hans/3.0/topics/http/file-uploads/ 1)配置project1/settings ...

  7. Django 使用form组件对文件上传

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. Django 实现简单的文件上传

    今天分享一下Django实现的简单的文件上传的小例子. 步骤 创建Django项目,创建Django应用 设计模型 处理urls.py 以及views.py 设计模板,设计表单 运行项目,查看数据库 ...

  9. django 文件上传(阿里云oss)下载(支持大文件下载)

    1.文件上传 Models 设计 class Upload_File(models.Model): image = models.FileField(upload_to='file/%Y/%m',de ...

随机推荐

  1. Orleans学习总结(四)--集群配置篇

    上篇我们讲了Orleans学习总结(三)--持久化篇,这一篇我们来说说集群配置,毕竟这个才是Orleans的看家本领 Orleans支持热起动,支持自动节点发现,能够断线重发等一系列黑科技. 我这篇是 ...

  2. C - Monthly Expense

    Farmer John is an astounding accounting wizard and has realized he might run out of money to run the ...

  3. MFC 应用程序中使用管道代码示意

    STARTUPINFO sinf = {0}; PROCESS_INFORMATION pinf = {0}; SECURITY_ATTRIBUTES sa = {0}; HANDLE hPipeOR ...

  4. 强大的JQuery表单验证插件 FormValidator使用介绍

    jQuery formValidator表单验证插件是客户端表单验证插件. 在做B/S开发的时候,我们经常涉及到很多表单验证,例如新用户注册,填写个人资料,录入一些常规数据等等.在这之前,页面开发者( ...

  5. 计蒜客 31436 - 提高水平 - [状压DP]

    题目链接:https://nanti.jisuanke.com/t/31436 作为一名车手,为了提高自身的姿势水平,平时的练习是必不可少的.小 J 每天的训练包含 $N$ 个训练项目,他会按照某个顺 ...

  6. Flannel配置详解

    1.简介 Flannel是一种基于overlay网络的跨主机容器网络解决方案,也就是将TCP数据包封装在另一种网络包里面进行路由转发和通信, Flannel是CoreOS开发,专门用于docker多机 ...

  7. jctable

    1.jctable 选择单项并删除: var items = Co["MyTable"].GetSelected("HtmlEle"); if (items.l ...

  8. en-zh(科学技术)science and technology

    S Korea to roll out 5G韩国正式推5G商用服务 South Korea will become the first country to commercially launch f ...

  9. spring quartz动态修改执行时间

    1.获取schedule <bean name="startQuartz" lazy-init="false" autowire="no&quo ...

  10. redis设置bind

    1>注释掉bind #bind 127.0.0.1 2>默认不是守护进程方式运行,这里可以修改 daemonize no 3>禁用保护模式 protected-mode no 启动R ...