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.获取用户 ...
随机推荐
- jQuery-安装方法(2类)
一.下载到本地,调用本地jQuery库 下载地址:http://jquery.com/download/ 共有两个版本的 jQuery 可供下载: 1.精简版:用于实际的网站中,已被精简和压缩. 2. ...
- IE的Trident引擎下实现C++和Javascript相互调用
我们知道实现C++和Javascript通讯有下表5种接口: 引擎 编写语言 API接口 C.C++与JavaScript交互(变量.函数.类) vc2005编译静态库的大小 示例EXE的大小 执行. ...
- JS encodeURIComponent函数
为了避免歧义,可以用JS 的encodeURIComponent函数 将有歧义的字符(?+=等)转换成对应的ASCII编码 for(var i=0;i<whichform.elements.l ...
- BZOJ 1229: [USACO2008 Nov]toy 玩具
BZOJ 1229: [USACO2008 Nov]toy 玩具 标签(空格分隔): OI-BZOJ OI-三分 OI-双端队列 OI-贪心 Time Limit: 10 Sec Memory Lim ...
- python_37_文件修改
f=open('yesterday','r',encoding='utf-8') f_new=open('yesterday_update','w',encoding='utf-8') for lin ...
- bootstrap2文档的学习
就像刚开始的 优雅,直观,强大的前端框架,让web开发更快,更容易,bootstrap给我的感觉就是把常用的布局,组件(导航,列表,按钮,表格),还有规范化颜色等等,同时它的遍历不至于此,他还支持了自 ...
- ArrayList集合例题,商品库存管理(集合)
创建车库集合,存进车 public class demo1 { String pinpai; String c; int s; } import java.util.ArrayList; class ...
- linux的一些指令
linux的一些指令 █查看指令參數man 指令,如:man ls ,按q鍵退出 █查看文件列表ls -lht 按時間排序ll 列表ls 列表 目錄cd 目錄名稱 進入路徑cd .. 返回上層路徑 █ ...
- java Html&JavaScript面试题:HTML 的 form 提交之前如何验证数值文本框的内容全部为数字? 否则的话提示用户并终止提交?
提交的验证方法(通过单个字符比较): <!DOCTYPE html> <html> <head> <meta charset="UTF-8" ...
- 问题002:我们要使用的Java是哪个版本的?什么是JVM、JRE、JDK、IDE、API?
三个版本:1.java SE 标准版 2.java EE企业版 3.Java ME 小型版本 JVM (java virtual machine) java虚拟机 JRE(java runtime e ...