class LoginForm(forms.Form): name = forms.CharField( max_length=32, label='账号', widget=widgets.Input( attrs={'class': 'form-control input-group input-group-lg'}), ) pwd = forms.CharField( max_length=32, label='密码', widget=widgets.Input( attrs={'class': 'form-control input-group input-group-lg'}), ) def clean(self): name = self.cleaned_data.get('name') pwd = self.cleaned_data.get('pwd') print(name, pwd) user_obj = auth.authenticate(username=name, password=pwd) print(user_obj) if user_obj: return self.cleaned_data else: raise ValidationError('用户名或者密码不正确')
class UserForm(forms.Form): name = forms.CharField( max_length=32, label='账号', widget=widgets.Input( attrs={'class': 'form-control input-group input-group-lg'}), ) pwd = forms.CharField( max_length=32, label='密码', widget=widgets.Input( attrs={'class': 'form-control input-group input-group-lg'}), ) re_pwd = forms.CharField( max_length=32, label='确认密码', widget=widgets.Input( attrs={'class': 'form-control input-group input-group-lg'}), ) def clean(self): name = self.cleaned_data.get('name') user_obj = UserInfo.objects.filter(username=name).first() pwd = self.cleaned_data.get("pwd") re_pwd = self.cleaned_data.get("re_pwd") if user_obj: raise ValidationError("用户名已存在") elif pwd != re_pwd: raise ValidationError("两次密码不一致") else: return self.cleaned_data
class Meta: model = hatrule fields = '__all__' widgets = { 'FID': Fwidgets.Input(attrs={'type': 'hidden'}), 'FRule': Fwidgets.Input( attrs={ 'class': 'layui-input', 'lay-verify': 'required', 'autocomplete': 'off' }), 'FType': Fwidgets.Select(attrs={'lay-verify': 'required'}), 'FStatus': Fwidgets.CheckboxInput(attrs={ 'lay-skin': 'switch', 'lay-text': '启用|禁用', 'disabled': 'disabled' }), 'FDesc': Fwidgets.Textarea(attrs={ 'class': 'layui-textarea', 'autocomplete': 'off', 'rows': '1' }) }
class Meta: model = area fields = '__all__' widgets = { 'FID': Fwidgets.Input(attrs={'type': 'hidden'}), 'FName': Fwidgets.Input( attrs={ 'class': 'layui-input', 'lay-verify': 'required', 'autocomplete': 'off' }), 'FPosition': Fwidgets.Input(attrs={ 'class': 'layui-input', 'autocomplete': 'off' }), 'FIsCheckworkatten': Fwidgets.CheckboxInput(attrs={ 'lay-skin': 'switch', 'lay-text': '是|否' }), 'FDesc': Fwidgets.Textarea(attrs={ 'class': 'layui-textarea', 'autocomplete': 'off', 'rows': '0' }), }
class Meta: model = abnpound fields = '__all__' widgets = { 'FID': Fwidgets.Input(attrs={'type': 'hidden'}), 'FPoundID': Fwidgets.Input(attrs={'type': 'hidden'}), 'FResult': Fwidgets.Select(attrs={'lay-verify': 'required'}), 'FResultDate': Fwidgets.Input( attrs={ 'class': 'layui-input', 'lay-verify': 'required', 'autocomplete': 'off' }), 'FDesc': Fwidgets.Textarea(attrs={ 'class': 'layui-textarea', 'autocomplete': 'off', 'rows': '1' }) }
class Meta: model = mencrepairlog fields = '__all__' widgets = { 'FID': Fwidgets.Input(attrs={'type': 'hidden'}), 'FSubmitdate': Fwidgets.Input( attrs={ 'class': 'layui-input', 'lay-verify': 'required', 'autocomplete': 'off' }), 'FHappendate': Fwidgets.Input( attrs={ 'class': 'layui-input', 'lay-verify': 'required', 'autocomplete': 'off' }), 'FSite': Fwidgets.Input( attrs={ 'class': 'layui-input', 'lay-verify': 'required', 'autocomplete': 'off' }), 'FDesc': Fwidgets.Textarea(attrs={ 'class': 'layui-textarea', 'autocomplete': 'off', 'rows': '1' }) }
class Meta: model = models.Option fields = ['name','score'] widgets = { 'name': wd.Input(attrs={'class': '',"style":"width: 80px"}), 'score': wd.Input(attrs={'class': '',"style":"width: 80px"}) }
class Meta: model = models.Service fields = "__all__" labels = { 's_name': '服务名称', 's_type': '服务类型', 'h_server': '关联主机', } widgets = { 's_name': ws.Input(attrs={ "class": 'form-control', 'placeholder': "请输入服务名", "type": "text" }), 's_type': ws.Input(attrs={ "class": 'form-control', 'placeholder': "请输入服务类型", "type": "text" }), 'h_server': ws.SelectMultiple(attrs={ 'class': 'form-control select2', 'multiple': 'multiple' }), }
class RegisterForm(forms.Form): username = fields.CharField( error_messages={"required": "用户名不能为空"}, widget=widgets.Input(attrs={"class": "form-control"}) ) email = fields.EmailField( error_messages={'required':'邮箱不能为空','invalid':'邮箱格式错误'}, widget=widgets.Input(attrs={"class": "form-control"}) ) password = fields.CharField( max_length=12, min_length=6, error_messages={"required": "密码不能为空",'invalid':'密码应大于6位小于12位!'}, widget=widgets.Input(attrs={"class": "form-control"}) ) password2 = fields.CharField(error_messages={"required": "密码不能为空"}, widget=widgets.Input(attrs={"class": "form-control"})) check_code = fields.CharField(error_messages={"required": "验证码不能为空"}, widget=widgets.Input(attrs={"class": "form-control"})) def clean_username(self): """ 验证用户存不存在 :return: """ obj = models.UserInfo.objects.filter(username=self.cleaned_data['username']) # 用户存在返回原来的值 if not obj: return self.cleaned_data['username'] else: raise ValidationError(message="用户已存在,请更换其他用户名", code="xxxx")
class Meta: model = base fields = "__all__" widgets = { 'FID': Fwidgets.Input(attrs={'type': 'hidden'}), 'FBaseID': Fwidgets.Input( attrs={ 'class': 'layui-input', 'lay-verify': 'required', 'autocomplete': 'off' }), 'FBase': Fwidgets.Input( attrs={ 'class': 'layui-input', 'lay-verify': 'required', 'autocomplete': 'off' }), 'FMappingCode': Fwidgets.Input(attrs={ 'class': 'layui-input', 'autocomplete': 'off' }), 'FDesc': Fwidgets.Input(attrs={ 'class': 'layui-input', 'autocomplete': 'off' }) }
class Meta: model = mecoperauth fields = '__all__' widgets = { 'FID': Fwidgets.Input(attrs={'type': 'hidden'}), 'FPID': Fwidgets.Input(attrs={'type': 'hidden'}), 'FAuthTimeslot': Fwidgets.Input( attrs={ 'class': 'layui-input', 'lay-verify': 'required', 'autocomplete': 'off' }), 'FAuthDeadline': Fwidgets.Input( attrs={ 'class': 'layui-input', 'lay-verify': 'required', 'autocomplete': 'off' }), 'FDesc': Fwidgets.Textarea(attrs={ 'class': 'layui-textarea', 'autocomplete': 'off', 'rows': '1' }) }
class Sell_bookForm(forms.Form): title = forms.CharField( max_length=32, label='书名', widget=widgets.Input( attrs={'class': 'form-control input-group input-group-lg'}), error_messages={'required': '必填项,不能为空'}) price = forms.FloatField( label='价格', widget=widgets.Input(attrs={'class': 'form-control'}), error_messages={'required': '必填项,不能为空'}) author = forms.CharField( label='作者', widget=widgets.Input(attrs={'class': 'form-control'}), error_messages={'required': '必填项,不能为空'}) publish = forms.CharField( label='出版社', widget=widgets.Input(attrs={'class': 'form-control'}), error_messages={'required': '必填项,不能为空'}) brief = forms.CharField( label='简介', widget=widgets.Input(attrs={'class': 'form-control'}), error_messages={'required': '必填项,不能为空'}) pub_time = forms.DateField(label='出版时间', widget=widgets.DateInput(attrs={ 'class': 'form-control', 'type': 'date' }), error_messages={'required': '必填项,不能为空'})
class OrderPeriodForm(forms.Form): min_date = forms.DateField( input_formats='dd.mm.yy', required=False, label='From:', widget=widgets.Input( attrs={'class': 'form-control date_range_filter date'})) max_date = forms.DateField( input_formats='dd.mm.yy', required=False, label='To:', widget=widgets.Input( attrs={'class': 'form-control date_range_filter date'})) pair = forms.ChoiceField(required=False) def clean(self): cleaned_data = super(OrderPeriodForm, self).clean() min_date = cleaned_data.get("min_date") max_date = cleaned_data.get("max_date") if min_date and max_date: if max_date < min_date: raise forms.ValidationError( "End time cannot be earlier than start time!") return cleaned_data
class Newuser(forms.Form): username = fields.CharField(max_length=12, min_length=3, error_messages={ 'required': '用户名不能为空', 'max_length': '用户名长度不能12', 'min_length': '用户名长度不能小于3' }, widget=widgets.Input( attrs={ 'type': "text", 'class': "form-control", 'name': "username", 'id': "username", 'placeholder': "请输入用户名" })) email = fields.EmailField(error_messages={ 'required': '邮箱不能为空', 'invalid': '邮箱格式不正确.' }, widget=widgets.Input( attrs={ 'type': "email", 'class': "form-control", 'name': "email", 'id': "email", 'placeholder': "请输入邮箱名" })) password = fields.CharField(max_length=12, min_length=6, error_messages={ 'required': '密码不能为空.', 'max_length': '密码长度不能大于12', 'min_length': '密码长度不能小于6' }, widget=widgets.Input( attrs={ 'type': "password", 'class': "form-control", 'name': "password", 'id': "password", 'placeholder': "请输入密码" })) confirm_password = fields.CharField(max_length=12, min_length=6, error_messages={ 'required': '不能为空.', 'max_length': '两次密码不一致', 'min_length': '两次密码不一致' }, widget=widgets.Input( attrs={ 'type': "password", 'class': "form-control", 'name': "confirm_password", 'id': "confirm_password", 'placeholder': "请重新输入密码" }))
class Meta: model = Profile is_multipart = True fields = ('avatar', 'user__first_name', 'user__last_name') widgets = { 'first_name': widgets.Input(attrs={}), 'last_name': widgets.Input(attrs={}), 'avatar': widgets.FileInput(attrs={}), }
class Meta: model = subinterface fields = '__all__' widgets = { 'FID': Fwidgets.Input(attrs={'type': 'hidden'}), 'FPID': Fwidgets.Input(attrs={'type': 'hidden'}), 'FDesc': Fwidgets.Textarea(attrs={'class': 'layui-textarea', 'autocomplete': 'off', 'rows': '1'}), }
class Meta: model = Server fields = ['username', 'passwd', 'sshport', 'sudo_passwd', 'keyfile'] widgets = { 'username': widgets.Input(), 'passwd': widgets.Input(), 'sshport': widgets.Input(), 'sudo_passwd': widgets.Input(), 'keyfile': widgets.Input(), }
class Meta: model = devcallinterface fields = '__all__' widgets = { 'FID': Fwidgets.Input(attrs={'type': 'hidden'}), 'FPID': Fwidgets.Input(attrs={'type': 'hidden'}), 'FCallSigCode': Fwidgets.Input(attrs={'class': 'layui-input', 'lay-verify': 'required', 'autocomplete': 'off'}), 'FDataMode': Fwidgets.Select(), 'FDesc': Fwidgets.Textarea(attrs={'class': 'layui-textarea', 'autocomplete': 'off', 'rows': '1'}), }
class Meta: model = Manufactory widgets = { 'name': frwidgets.Input(attrs={ 'class': 'form-control', }), 'tel_num': frwidgets.Input(attrs={ 'class': 'form-control', }), } exclude = ['create_date', 'update_date']
class Meta: model = materaccountgoods fields = '__all__' widgets = { 'FID': Fwidgets.Input(attrs={'type': 'hidden'}), 'FPID': Fwidgets.Input(attrs={'type': 'hidden'}), 'FWaybillQty': Fwidgets.Input(attrs={'class': 'layui-input', 'lay-verify': 'required', 'autocomplete': 'off'}), 'FConfirmQty': Fwidgets.Input(attrs={'class': 'layui-input', 'lay-verify': 'required', 'autocomplete': 'off'}), 'FDeviationQty': Fwidgets.Input(attrs={'class': 'layui-input', 'lay-verify': 'required', 'autocomplete': 'off', 'readonly': 'true'}), }
class Meta: model = interfaceparam fields = '__all__' widgets = { 'FID': Fwidgets.Input(attrs={'type': 'hidden'}), 'FPID': Fwidgets.Input(attrs={'type': 'hidden'}), 'FSequence': Fwidgets.Input(attrs={'class': 'layui-input', 'lay-verify': 'required', 'autocomplete': 'off'}), 'FPosition': Fwidgets.Select(), 'FParam': Fwidgets.Input(attrs={'class': 'layui-input', 'lay-verify': 'required', 'autocomplete': 'off'}), 'FValue': Fwidgets.Input(attrs={'class': 'layui-input', 'lay-verify': 'required', 'autocomplete': 'off'}), 'FDesc': Fwidgets.Textarea(attrs={'class': 'layui-textarea', 'autocomplete': 'off', 'rows': '1'}), }
class Meta: model = IDC widgets = { 'name': frwidgets.Input(attrs={ 'class': 'form-control', }), 'address': frwidgets.Input(attrs={ 'class': 'form-control', }), 'area': frwidgets.Input(attrs={ 'class': 'form-control', }), } exclude = ['create_date', 'update_date']
class Meta: model = envruleswitch fields = '__all__' widgets = { 'FID': Fwidgets.Input(attrs={'type': 'hidden'}), 'FPID': Fwidgets.Input(attrs={'type': 'hidden'}), 'FPort': Fwidgets.Input(attrs={'class': 'layui-input', 'lay-verify': 'required', 'autocomplete': 'off'}), 'FStatus': Fwidgets.CheckboxInput(attrs={'lay-skin': 'switch', 'lay-text': '通|断'}), 'FCommand': Fwidgets.Input(attrs={'class': 'layui-input', 'lay-verify': 'required', 'autocomplete': 'off'}), 'FDriverdevice': Fwidgets.Input(attrs={'class': 'layui-input', 'lay-verify': 'required', 'autocomplete': 'off'}), 'FDesc': Fwidgets.Textarea(attrs={'class': 'layui-textarea', 'autocomplete': 'off', 'rows': '1'}) }
class Newuser(forms.Form): # 注册界面用户名框最长长度不能超过9,最小不能小于3,且不能为空 username = fields.CharField(max_length=9, min_length=3, error_messages={ 'required': '用户名不能为空', 'max_length': '用户名长度不能大于9', 'min_length': '用户名长度不能小于3' }, widget=widgets.Input( attrs={ 'type': "text", 'class': "form-control", 'name': "username", 'id': "username", 'placeholder': "请输入用户名" })) # 注册界面密码框最长长度不能超过12,最小不能小于6,且不能为空 password = fields.CharField(max_length=12, min_length=6, error_messages={ 'required': '密码不能为空.', 'max_length': '密码长度不能大于12', 'min_length': '密码长度不能小于6' }, widget=widgets.Input( attrs={ 'type': "password", 'class': "form-control", 'name': "password", 'id': "password", 'placeholder': "请输入密码" })) # 注册界面再次输入密码框最长长度不能超过9,并与前一个密码框内容比较,两次不一致提示“两次密码不一致”,最小不能小于3,且不能为空 confirm_password = fields.CharField(max_length=12, min_length=6, error_messages={ 'required': '不能为空.', 'max_length': '两次密码不一致', 'min_length': '两次密码不一致' }, widget=widgets.Input( attrs={ 'type': "password", 'class': "form-control", 'name': "confirm_password", 'id': "confirm_password", 'placeholder': "请重新输入密码" }))
class LoginForm(forms.Form): username = forms.CharField(max_length=16, widget=widgets.Input( attrs={ 'type': "username", 'class': "form-control", 'id': "exampleInputUsername" })) password = forms.CharField(max_length=16, min_length=6, widget=widgets.PasswordInput( attrs={ 'type': "password", 'class': "form-control", 'id': "exampleInputPassword" })) def clean_password(self): password = self.cleaned_data['password'] password_length = len(password) if password_length < 6: raise forms.ValidationError("Not enough digits for password!") elif password_length > 16: raise forms.ValidationError("Too much digits for password!") return password
class FM(forms.Form): user = fields.CharField(error_messages={'required': '用户名不能为空'}, widget=widgets.Input(attrs={'class': 'c1'}), label="用户名") pwd = fields.CharField(max_length=12, min_length=6, error_messages={ 'required': '密码不能为空', 'max_length': '密码长度不能大于12位', 'min_length': '密码长度不能小于6位' }, widget=widgets.PasswordInput(attrs={'class': 'c2'}), label="密码") email = fields.EmailField(error_messages={ 'required': '邮箱不能为空', 'invalid': '邮箱格式错误' }, label="邮箱") f = fields.FileField(allow_empty_file=False) p = fields.FilePathField(path='app01') # 列出app01目录下所有文件 city1 = fields.ChoiceField(choices=[(0, '北京'), (1, '吉林'), (2, '银川')]) city2 = fields.MultipleChoiceField(choices=[(0, '广东'), (1, '深圳'), (2, '东莞')])
class Meta: model = Confd fields = ['conf_name','conf_path','conf_service','conf_host'] labels = { 'conf_name':'配置名称', 'conf_path':'配置路径', 'conf_service':'配置类型', 'conf_host':'配置主机' } widgets = { 'conf_name': widgets.Input(attrs={"class": 'form-control', 'placeholder': "conf_name", "type": "text"}), 'conf_path': widgets.Input(attrs={"class": 'form-control', 'placeholder': "conf_path", "type": "text"}), 'conf_service': widgets.SelectMultiple(attrs={'class': 'form-control select2', 'multiple': 'multiple'}), 'conf_host': widgets.SelectMultiple(attrs={'class': 'form-control select2', 'multiple': 'multiple'}), }
class FM(forms.Form): user = fields.CharField( error_messages={'required': '用户名不能为空'}, label='用户名', widget=widgets.Input( attrs={'class': 'c1'} ), #其实就是类型,可以是input 可以是textarea,可以是select; attrs 为该标签加上class=c1的样式 # widget=widgets.Textarea ) pwd = fields.CharField( max_length=12, min_length=6, error_messages={ 'required': '密码不能为空.', 'min_length': '密码长度不能小于6', "max_length": '密码长度不能大于12' }, #自定义错误提示信息 label='密码', widget=widgets.PasswordInput) email = fields.EmailField( error_messages={ 'required': '邮箱不能为空.', 'invalid': "邮箱格式错误" }, label='邮箱', ) f = fields.FileField(allow_empty_file=False) city1 = fields.ChoiceField(choices=[(0, '上海'), (1, '广州'), (2, '东莞')]) city2 = fields.MultipleChoiceField(choices=[(0, '上海'), (1, '广州'), (2, '东莞')])
class Table(forms.Form): caption = forms.CharField(label='操作表名') tableName = forms.CharField( label='操作路径', widget=widgets.Input(attrs={ 'onchange': 'check_file()', }))
class Meta: model = Project fields = ('name', 'remark') widgets = { 'name': widgets.Input(attrs={'class': 'form-control'}), 'remark': widgets.Textarea(attrs={'class': 'form-control'}) }