Form 组件动态绑定数据
1、Form 组件的作用:
a.对用户提交的数据进行验证(form表单/ajax)
b.保留用户上次输入的信息
c.可以生成html标签(input表单类的标签)
2..由于form组件中每个字段都是类的数据属性(全局变量),在类每次实例化之后,数据属性不会发生改变,会保留上次的更新结果
导致无法动态显示数据库的内容:
from django.shortcuts import render
from django import forms
from django.forms import fields,widgets
from app01.models import Userinfo
from app01 import models
class CForm(forms.Form):
username=fields.CharField(max_length=10,
min_length=6,
required=True,
error_messages={'max_length':'长度超过10位',
'min_length':'长度少于6位',
'required':'需要输入',},)
user_id=fields.IntegerField(widget=widgets.Select(choices=models.Userinfo.objects.values_list('id','username')),)#数据库中提取id和username
def index(request):
obj=CForm() #对Form 进行实例化
return render(request,'index.html',locals())
该方法在类每次实例化之后,数据属性不会发生改变,会保留上次的更新结果导致无法动态显示数据库的内容:
对应的解决办法:
class CForm(forms.Form):
username=fields.CharField(max_length=10,
min_length=6,
required=True,
error_messages={'max_length':'长度超过10位',
'min_length':'长度少于6位',
'required':'需要输入',},)
user_id=fields.IntegerField(widget=widgets.Select())
def __init__(self,*args,**kwargs):
super(CForm,self).__init__(*args,**kwargs)
self.fields['user_id'].widget.choices=models.Userinfo.objects.values_list('id','username')#数据库中提取id和username
def index(request):
obj=CForm() #对Form 进行实例化
return render(request,'index.html',locals())
其他关于form组件的相关资料链接:https://www.cnblogs.com/sss4/p/7112546.html
Form 组件动态绑定数据的更多相关文章
- python---django中form组件(数据添加前使用自定义方法<django预留扩展点3个>进行验证,以及源码分析)
form组件代码: from app02.models import Userfrom django.core.exceptions import ValidationError class Ajax ...
- django 使用form组件提交数据之form表单提交
django的form组件可以减少后台在进行一些重复性的验证工作,极大降低开发效率. 最近遇到一个问题: 当使用form表单提交数据后,如果数据格式不符合后台定义的规则,需要重新在前端页面填写数据. ...
- Django之form组件自动校验数据
目录 一.form介绍 二.普通方式手写注册功能 views.py register.html 三.使用form组件实现注册功能 views.py register2.html 四.pycharm的专 ...
- day75 form 组件(对form表单进行输入值校验的一种方式)
我们的组件是什么呢 select distinct(id,title,price) from book ORM: model.py class Book(): title=model.CharFiel ...
- [oldboy-django][2深入django]Form组件功能: 数据格式验证 + 保留上次输入的值
1 需求:登录或者注册页面存在以下问题 - 无法记住上次提交的内容,(如果有很多输入项,这样正确项不必重复输入,错误项也能提示错误信息)- 重复进行提交数据的校验(数据是否为空,长度大小等等) 2 d ...
- 探索form组件和cookie,session组件
一. 实现注册功能 后端代码: from django.shortcuts import render,HttpResponse,redirect from app01 import models C ...
- Form组件 cookie和session
django form组件 1.渲染标签 2.校验数据 3.展示信息 第一步需要一个form类 from django import forms class MyForm(forms.Form): n ...
- django form组件 cookies,session
django form组件 渲染标签 就是组件里面的字段在前端展示叫做渲染标签 校验数据 用户输入的数据提交给后端组件叫做校验数据 forms组件中定义的字段都是必须传值的(required=Tr ...
- Django form组件 与 cookie/session
目录 一.form组件 二.cookie.session 返回Django 组件 一.form组件 1.1 以注册功能为例 注册功能 1.渲染前端标签获取用户输入 --> 渲染标签 2.获取用户 ...
随机推荐
- Python __builtin__模块
你有没有好奇过当我们打开Python后就可以直接使用str(),list(),eval(),print(),max()这样的函数,而不用导入任何模块? 其实原因很简单,就是当我们打开Python解释器 ...
- jquery-weui picker组件实现只选择年月
var date = new Date() var month = date.getMonth()+1 //获取当前月份 $('#selectTime').picker({ toolbarTempla ...
- pat甲级1044二分查找
1044 Shopping in Mars(25 分) Shopping in Mars is quite a different experience. The Mars people pay by ...
- webpack最简单的入门教程里bundle.js之运行单步调试的原理解析
读这篇文章的朋友,请确保对webpack有最基础的认识. 您可以阅读我前一篇文章:Webpack 10分钟入门 来在本地运行一个Webpack的hello world项目.https://www.to ...
- MySQL设计规范与性能优化
引言 MySQL是目前使用最为广泛的关系型数据库之一,如果使用得当,可支撑企业级高并发.高可靠服务,使用不当甚至连并发量略高的个人网站都难以支撑: 就算使用了缓存,大量的数据库访问依旧在所难免,即使设 ...
- flutter 踩坑总结
导入第三方库踩坑小结: (编译器:VsCode) ( 打算在学习中,使用flutter重新自己的项目,遇到比较特殊的坑,就先记录一下,持续更新中) 1.把第三方库 写入pubspec.yaml文件中 ...
- python_26_dictionary
#key-value 字典无下标 所以乱序,key值尽量不要取中文 info={ 'stu1101':'Liu Guannan', 'stu1102':'Wang Ruipu', 'stu1103': ...
- C# FileStream对象
FileStream对象表示在磁盘或网络路径上指向文件的流.当类提供向文件读写字节的方法时,经常使用StreamReader或StreamWriter执行这些功能.这是因为FileStream类操作字 ...
- jquery淡入淡出轮播图
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- JDBC的连接mySql的基本知识
这只是我自己的随笔博客~,用于偶尔回忆知识,可能存在一些错误,如有错误,欢迎指正~ 首先对于JDBC连接MySQL,要了解基本的框架结构 画的比较烂,大约就是这样的结构 然后看一下具体实现的 代码:: ...