zoukankan      html  css  js  c++  java
  • Form与ModelForm的 使用

    Form
    定义Form的常用的字段
    CharField  文本框
    InterFile  数值框
    DateField  参数input_formats设置时间格式
    TimeField
    DateTimeField 
    RegexField 文本框,判断是否与参数regex设置的正则表达式匹配
    EmailField 
    FileField 文件上传框 max_length设置文件名最大长度,all_empty_file设置是否文件大小可以为空
    ImageFild 文件上传控件 验证是否是可以pillow识别图片格式
    FilePathField 文件选择控件 path必选参数
    URLField 文本框
    BooleanField
    ChoiceField 参数choice以元组形式表示
    	共同的参数:
    		required
    		widget 设置控件的颜色
    		initial 设置表单的初始值
    		hepl_text 设置帮助提示信息
    		disabled 设置是否可编辑 
    		localize 设置本地化
    		error_messages 设置错误信息,比如error_messages = {'required':'不能为空'}
    	数据清洗方式:
    		widget是一个forms.widgets对象,用于设置CSS颜色,,比如在字段中设置
    		    password = forms.CharField(label='密码',
                               min_length=8,
                               max_length=16,
                               error_messages={
                                   'min_length':'密码长度不能少过8个字符',
                                   'max_length':'密码长度不能超过16个字符'
                               },
                               widget=forms.PasswordInput())
    		或者在字段外设置        widgets = {
            'decs':forms.Textarea,
            'color':ColorRadioSelect(attrs={'class':'color-radio'})
        }
    	
    	error_messages字典形式写
    	validators 自定义函数
    		mobile_phone = forms.CharField(label='手机号',validators=[RegexValidator(r'^(1|2|3|4|5|6|7|8|9)d{6,11}$','手机格式错误'),])
    		
    		def clear_属性名(self):pass
    
    Form开发中经常用到的属性与方法
    data
    is_valid()
    errors()
    as_table()
    as_ul()
    as_p()
    
    ModelForm属性和方法
    instance 初始化数据
    save() 保存数据
    
    特色定义属性
    	model:绑定Modle对象
    	fields:可选属性'__all__'
    	exclude
    
    怎么修改默认样式
    class WikiModelForm(bootstrap, forms.ModelForm):
        class Meta:
            model = models.Wiki
            exclude = ['project', 'depth',]
    
        def __init__(self, request, *args, **kwargs):
            super().__init__(*args, **kwargs)
            """如果像把某个字段数据重置,先找到这个字段,然后重置"""
            total_data_list = [("", "请选择"),]
    
            # 找到想要的指端数据
            data_list = models.Wiki.objects.filter(project=request.tracer.project).values_list('id', 'title')
            total_data_list.extend(data_list)
    
            # 进行修改
            self.fields['parent'].choices = total_data_list
    
    Bootstrap怎么设置
    class bootstrap(object):
        bootstrap_class_exclude = []
    
        def __init__(self,*args,**kwargs):
            super().__init__(*args, **kwargs)
            for name,filed in self.fields.items():
                if name in self.bootstrap_class_exclude:
                    continue
                odl_attrs = filed.widget.attrs.get('class', "")
                filed.widget.attrs['class'] = '{} form-control'.format(odl_attrs)  # 添加属性
                filed.widget.attrs[''] = '请输入%s'%(filed.label,)
  • 相关阅读:
    Mapreduce实例——求平均值
    Mapreduce实例——单表join
    《短码之美》读书笔记1
    Mapreduce实例——Map端join使用addCacheFile()方法报错,找不到文件
    Mapreduce实例——Map端join
    C# 异常捕获
    Mapreduce实例——排序
    无名
    数据库设计体会
    oracle 删除表空间错误 提示:ora02429:无法删除用于强制唯一/主键的索引。
  • 原文地址:https://www.cnblogs.com/KingOfCattle/p/14313461.html
Copyright © 2011-2022 走看看