正则表达式 – Django:使用正则表达式检查表单中的CharField格
发布时间:2020-12-14 06:04:26 所属栏目:百科 来源:网络整理
导读:class CapaForm(forms.Form): capa = forms.CharField(required=False) 提交表单后,我想检查capa字段的格式.我想要求用户正确输入capa格式为6个数字,短划线和两个数字. (###### – ##) def search(self): capa = self.cleaned_data.get('capa',None) if ("d
class CapaForm(forms.Form): capa = forms.CharField(required=False) 提交表单后,我想检查capa字段的格式.我想要求用户正确输入capa格式为6个数字,短划线和两个数字. (###### – ##) def search(self): capa = self.cleaned_data.get('capa',None) if ("d{6}-d{2}" or None) not in capa: raise forms.ValidationError("CAPA format needs to be ######-##!") 它目前不允许我提交格式正确的capa并抛出ValidationError.我认为问题是我正在尝试将正则表达式与对象进行比较.如何检查用户尝试提交的’capa’的格式? ********* UPDATE 当我在CAPA字段中输入错误的格式时,现在一切正常.我收到错误视图incidents.views.index没有返回HttpResponse对象.它返回了None.这与我所做的改变有关吗? from django.core.validators import RegexValidator my_validator = RegexValidator("d{6}-d{2}","CAPA format needs to be ######-##.") class CapaForm(forms.Form): capa = forms.CharField( label="CAPA",required=False,# Note: validators are not run against empty fields validators=[my_validator] ) def search(self): capa = self.cleaned_data.get('capa',None) query = Incident.objects.all() if capa is not '': query = query.filter(capa=capa) return(query) 解决方法
首先,您需要一个正则表达式验证器:
Django validators / regex validator 然后,将其添加到您的字段的验证器列表中: 简单示例如下: from django.core.validators import RegexValidator my_validator = RegexValidator(r"A","Your string should contain letter A in it.") class MyForm(forms.Form): subject = forms.CharField( label="Test field",required=True,# Note: validators are not run against empty fields validators=[my_validator] ) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 使用 Dojo 显示表格数据,并带筛选(filter)功能
- A*算法的GUI实现
- c – 求解方程.计数(x,y)
- c# – CreateUserIdenityAsync返回自定义IdentityUser的“U
- Cocos2d-js参考资料
- SRAM/DRAM,PROM/EPROM/EEPROM,NOR/NAND FLASH区别
- swift – 添加Firestore会生成错误ld:framework not found
- ruby-on-rails-3 – 在Ruby on Rails中,为什么“捆绑安装”
- c# – 为什么我的wcf客户端的操作合同不能将接口作为参数?
- ruby-on-rails – 如何忽略一些rails_best_practices gem警