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操作: 创建数据库表结构 ...
随机推荐
- FATAL Fatal error during KafkaServerStable startup. Prepare to shutdown (kafka.server.KafkaServerStartable) java.io.FileNotFoundException: /tmp/kafka-logs/.lock (Permission denied)
1.启动kafka的时候,报错如下所示: [-- ::,] INFO zookeeper state changed (SyncConnected) (org.I0Itec.zkclient.ZkCl ...
- BZOJ 4282(慎二的随机数列
题解: 网上题解还没看 我的方法是用平衡树维护一个单调栈 由于N用了一定是赚的 所以它的作用是让f[i+1]=f[i]+1 这个是可以记录的 就跟noip蚯蚓那题一样 然后插入一个值的时候查询前面的最 ...
- makefile:n: *** missing separator. Stop
makefile has a very stupid relation with tabs, all actions of every rule are identified by tabs .... ...
- window下用taskkill杀死进程
TASKKILL [/S system [/U username [/P [password]]]] { [/FI filter] [/PID processid | /IM imagename] } ...
- BZOJ3172 [Tjoi2013]单词 字符串 SA ST表
原文链接http://www.cnblogs.com/zhouzhendong/p/9026543.html 题目传送门 - BZOJ3172 题意 输入$n(n\leq 200)$个字符串,保证长度 ...
- Nginx的配置安装和使用
http://blog.csdn.net/e421083458/article/details/30086413 以后继续更新
- String.IsNullorEmpty()方法的使用
!= null 就是不为null !string.IsNullOrEmpty 不是null且不是""(string.Empty)
- hdu1202解题报告
#include<stdio.h>int main(){ int n,i; double sum,s,p,sum1; while(scanf("%d" ...
- POJ 3090 Visible Lattice Points 【欧拉函数】
<题目链接> 题目大意: 给出范围为(0, 0)到(n, n)的整点,你站在(0,0)处,问能够看见几个点. 解题分析:很明显,因为 N (1 ≤ N ≤ 1000) ,所以无论 N 为多 ...
- Java高级面试题解析(一)
最近,在看一些java高级面试题,我发现我在认真研究一个面试题的时候,我自己的收获是很大的,我们在看看面试题的时候,不仅仅要看这个问题本身,还要看这个问题的衍生问题,一个问题有些时候可能是一个问题群( ...