分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

django-form.errors和上传文件

发布时间:2023-09-06 01:54责任编辑:彭小芳关键词:django
  • 一.上传文件:
    • 在相应的模型里面定义`FileField`或者是`ImageField`类型的字段,并且1.设置好`upload_to`参数来指定上传的路径.
 
    headshot = models.ImageField(u‘头像‘, upload_to="upload/%Y/%m/%d")  # 上传的路径,django自己创建路径
 
  • 如果是使用ImageField,会需要安装一个依赖Pillow, Pillow是专门做图片处理的一个python包
 
pip install Pillow
 
 
  • 2.需要在`settings.py`文件中指定媒体路径`MEDIA_ROOT`.
 
MEDIA_ROOT = "media/"
 ps: 这里是媒体文件,它也是一种静态文件,在django中,这一块的内容是要跟其它静态文件分开处理的
 
  • django 中的文件存储分为两种
    • 静态文件存储,一般是我们的JS、css、系统的图片文件等
    • 媒体文件存储,一般是用户上传的图片、文件数据,或大的文件或视频等等
 
  • 3.文件上传需要在HTML代码中的form表单中添加`enctype="multipart/form-data"`以及在views当中,使用`request.FILES`来接收文件.
 
form = LoginUserForm(request.POST, request.FILES)
 
  • 文件只有在保存时才会处理,数据库保存的是文件的路径,不会保存文件本身.
  • 二.表单错误消息:
    • 表单验证没有通过后,表单会产生一个`errors`属性,这个属性包括所有的验证错误信息。
    • 通过`form.errors`即可访问。
    • 通过`form.erros.属性名`访问对应的错误
    • 通过`form.errors.as_json()`可以将错误消息转换成json数据。
    • 自定义错误消息:在`Field`中添加一个`error_messages`的`dict`类型的参数,然后根据`属性名`设置对应的`message`,例如以下代码:
    • 必须要执行完is_valid函数,否则errors是不会包含错误
  • 表单自定义错误消息:
    • 在表单中,重写方法`clean_field`(field是一个属性名),可以自定义针对某一个`field`的验证机制,如果出现错误
  • 如果某个`field`出现验证错误,通过`add_error`方法给指定的field添加错误消息。
  • 直接抛出一个`raise ValidationError(message, code="属性名")`就可以了。
  • 重写`clean`方法会在先完成`django`默认的验证后,再重新执行`clean`方法的验证
  • 如果验证完成成功了,则直接返回当前值
 
 ???def clean_password(self): ???????password = self.cleaned_data.get(‘password‘,None) ???????if len(password) < 6: ???????????raise forms.ValidationError(u‘password at least 6 length‘,code=‘min_length‘) ???????return password

django-form.errors和上传文件

原文地址:https://www.cnblogs.com/tangpg/p/9040491.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved