modelform的操作以及验证
1,model的两个功能
1,数据库操作
2,验证只有一个clean方法作为钩子来操作,方法比较少
2,form(专门用来做验证的) 根据form里面写的类,类里面的字段,这些字段里有内置的的正则表达式
一。基于form来做的过程
创建两张表,两张表之间用Foreignkey进行关联
生成表
如果现再index.html的页面中对UserInfo表进行操作,那么应该把该表格中的所有信息从后台传过来,把所有的字段重新创建一遍(用form的化,需要自己写field字段,用modelForm,字段可以从类里面去提取过来)
from django.shortcuts import render
from django import forms
from django.forms import fields
from app1 import models #基于form来做的数据展示
class UserInfoForm(forms.Form):
username = fields.CharField(max_length=32,label='用户名')
email = fields.EmailField()
user_type = fields.ChoiceField(
choices=models.UserType.objects.values_list('id','caption')
) def __init__(self,*args,**kwargs):#继承了UserInfoForm这张表格,并且将他重构
super(UserInfoForm,self.__init__(*args,**kwargs))
self.fields['user_type'].choices = models.UserType.objects.values_list('id','caption')
#每次都将表中的信息全部都更新 def index(request):
if request.method=='GET':
obj = UserInfoForm()
return render(request,'index.html',{'obj':obj})
elif request.method=='POST':
obj = UserInfoForm(request.POST)
print(obj.is_valid())
print(obj.cleaned_data)
print(obj.errors)
# models.UserInfo.objects.create(**obj.cleaned_data)#创建信息
return render(request,'index.html',{'obj':obj})
"""
#基于modelform来做的数据信息展示
class UserInfoModelForm(forms.ModelForm):#form下的modelform方法
class Meta:
model = models.UserInfo#指去哪个类里面去获取字段
fields='__all__'#指的是所有的字段
#fields=['username','email']#显示指定字段
# exclude=['username']#排除某一项
def index(request):
if request.method =='GET':
obj = UserInfoModelForm()
return render(request,'index.html',{'obj':obj})
elif request.method=='POST':
obj = UserInfoModelForm(request.POST)
print(obj.is_valid())#验证是不是通过
print(obj.cleaned_data)#验证所有的数据
print(obj.errors)
return render(request,'index.html',{'obj':obj})
"""
注释部分为modelform来做数据展示的views代码,其余部分为基于model的数据展示
用form方法的时候,验证功能的函数其实是写在BaseForm里的:
UserInfoForm-->继承了Form--->继承了BaseForm(is_valid......)
点击提交的时候,modelform也可以做验证
UserInfoModelForm-->继承了ModelForm--->继承了BaseModelForm--->继承了BaseForm(is_valid......)
modelform的操作以及验证的更多相关文章
- django(7)modelform操作及验证、ajax操作普通表单数据提交、文件上传、富文本框基本使用
一.modelForm操作及验证 1.获取数据库数据,界面展示数据并且获取前端提交的数据,并动态显示select框中的数据 views.py from django.shortcuts import ...
- Django ModelForm操作及验证
一.内容回顾 Model - 数据库操作 - 验证 class A(MOdel): user = email = pwd = Form - class LoginForm(Form): email = ...
- Day24-ModelForm操作及验证
Day23内容回顾--缺失,遗憾成狗. 一:Model(2个功能) -数据库操作: -验证,只有一个clean方法可以作为钩子. 二:Form(专门来做验证的)--------根据form里面写的类, ...
- django基础篇06-ModelForm操作及验证
本文内容主要来自银角大王的博客 学习大纲: 一.ModelForm 二.Ajax - 原生(jQuery) - 伪Ajax操作 三.文件上传(预览) - Form提交 - Ajax文件上传 四. 图片 ...
- Django之ModelForm实际操作使用
1.定义model数据库字段如下: class User(models.Model): """ 员工信息表用户.密码.职位.公司名(子.总公司).手机.最后一次登录时间. ...
- 接口测试入门(3)--使用httpClient进行登录用例操作/set-cookies验证/ List<NameValuePair>设置post参数/json解析
(最近学的都是很基础的接口测试,都是基于UI界面可见的接口,就是发请求,接收响应,分析返回的结果,校验,对共通模块进行封装,仅此而已,其实做自动化的思路基本都是如此,UI也是.) 现在开始用httpC ...
- Python开发【Django】:ModelForm操作
ModelForm 内容回顾: Model - 数据库操作 - 验证 class A(MOdel): user = email = pwd = Form class LoginForm(Form): ...
- Django(八)上:Model操作和Form操作
↑↑↑点上面的”+”号展开目录 Model和Form以及ModelForm简介 Model操作: 创建数据库表结构 操作数据库表 做一部分的验证 Form操作: 数据验证(强大) ModelForm ...
- Day23-Model操作和Form操作-转载
参考出处: http://blog.csdn.net/fgf00/article/details/54614706 Model和Form以及ModelForm简介 Model操作: 创建数据库表结构 ...
随机推荐
- sed 详解【转】
原文地址:http://www.cnblogs.com/sparkdev/archive/2017/07/10/7138073.html 基本命令格式 sed [常用选项] 命令文本 输入 常用选项 ...
- [转] mongodb下载、安装、配置与使用
记得在管理员模式下运行CMD,否则服务将启动失败. 详细图解,记录 win7 64 安装mongo数据库的过程.安装的版本是 MongoDB-win32-x86_64-2008plus-ssl-3.4 ...
- poj2398
题解: 计算几何入门题 对每个二分最近的在它右边的杆子 如何判断一个杆子在它右边呢 计算机判断这些要更善于利用点积和叉积 如果叉积为正代表在顺时针方向叉积为负在逆时针 发现要在struct里面重载运算 ...
- C语言之指针变量
菜单导航 1.指针变量 2.指针和数组 3.常量指针和指向常量的指针 4.指针和字符串的关系 5.数组越界造成的访问不属于自己的内存空间现象 6.引用数据类型和基本数据类型,形参和实参 7.字符串和字 ...
- FATAL ERROR: please install the following Perl modules before executing ./mysql_install_db: Data::Dumper
今天安装本地数据库,所遇到的错误 FATAL ERROR: please install the following Perl modules before executing ./mysql_ins ...
- 通过mysql-proxy映射外网访问内网数据库
配置教程: 转自:http://www.centoscn.com/mysql/2015/0107/4437.html centos安装mysql-proxy mysql-proxy的用处就不再说了 m ...
- 第四周java学习笔记
1.封装 封装可以理解为把方法封在类中,用打时候可以直接拿,就好比你要上学,类就是书包而方法就是书,要用方法打时候直接从书包中拿书就行. 2.类语法细节 public权限修饰 public是个公开类, ...
- 图解安装Debian 9.5全过程
本文将为你带来安装Debian 9.5 GNU/Linux的教程,安装全过程图文并茂讲解.安装Debian 9.5可以把ISO文件下载下来刻录成DVD安装或者采用虚拟机安装等等方法. 一.下载Debi ...
- Java 之 JQuery
1.JQuery a.定义:jQuery 是一个 JavaScript 库 b.作用:极大地简化了 JavaScript 编程 c.引入: <script src="jquery.js ...
- NSL:CPK_NN神经网络实现预测哪个样本与哪个样本处在同一层,从而科学规避我国煤矿突水灾难—Jason niu
load water_data.mat attributes = mapminmax(attributes); P_train = attributes(:,1:35); T_train = clas ...