对于想了解如何使Django表单字段仅包含字母数字字符的读者,本文将是一篇不可错过的文章,我们将详细介绍django表单类,并且为您提供关于c–确保字符串仅包含字母数字字符的更好方法?、c#–检查密码
对于想了解如何使Django表单字段仅包含字母数字字符的读者,本文将是一篇不可错过的文章,我们将详细介绍django 表单类,并且为您提供关于c – 确保字符串仅包含字母数字字符的更好方法?、c# – 检查密码包含字母数字和特殊字符、css – 如何向django表单字段添加其他类、django-forms – Django-bootstrap3错误“应包含有效的Django表单”的有价值信息。
本文目录一览:- 如何使Django表单字段仅包含字母数字字符(django 表单类)
- c – 确保字符串仅包含字母数字字符的更好方法?
- c# – 检查密码包含字母数字和特殊字符
- css – 如何向django表单字段添加其他类
- django-forms – Django-bootstrap3错误“应包含有效的Django表单”
如何使Django表单字段仅包含字母数字字符(django 表单类)
我有这个模特
name = models.CharField(max_length=50, blank=True, null=True)email = models.EmailField(max_length=50, unique=True)
我希望用户在两个字段中都不能使用字母数字以外的任何其他字符。
有什么办法吗?
答案1
小编典典您将使用验证器来限制字段接受的内容。ARegexValidator
可以在这里实现窍门:
from django.core.validators import RegexValidatoralphanumeric = RegexValidator(r''^[0-9a-zA-Z]*$'', ''Only alphanumeric characters are allowed.'')name = models.CharField(max_length=50, blank=True, null=True, validators=[alphanumeric])email = models.EmailField(max_length=50, unique=True, validators=[alphanumeric])
请注意,已经有一个validate_email
验证器可以为您验证电子邮件地址。上述alphanumeric
验证器将不允许使用有效的电子邮件地址。
c – 确保字符串仅包含字母数字字符的更好方法?
std::string sstr("This is a test"); for (std::string::const_iterator s = sstr.begin(); s != sstr.end(); ++s) if (! isalnum(*s)) return false;
这是正确的做法吗?有没有更有效的方法来处理这个问题?
解决方法
std::find_if
:
std::string sstr("This is a test"); auto it = std::find_if(std::begin(sstr),std::end(sstr),[](unsigned char c) { return !std::isalnum(c); }); return it == std::end(sstr);
std::find_if_not
可能会更有意义:
auto it = std::find_if_not(std::begin(sstr),[](unsigned char c) { return std::isalnum(c); });
c# – 检查密码包含字母数字和特殊字符
> 1个字母字符
> 1个号码
> 1个特殊字符(符号)
解决方法
bool result = passwordText.Any(c => char.IsLetter(c)) && passwordText.Any(c => char.IsDigit(c)) && passwordText.Any(c => char.IsSymbol(c));
虽然您可能希望通过“字母字符”,“数字”和“符号”更具体地说明您的意思,因为这些术语对不同的人意味着不同的东西,并且您不确定这些术语的定义是否符合定义框架使用.
我猜你用字母表示“a-z”或“A-Z”,用数字表示“0-9”,用符号表示任何其他可打印的ASCII字符.如果是这样,试试这个:
static bool IsLetter(char c) { return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'); } static bool IsDigit(char c) { return c >= '0' && c <= '9'; } static bool IsSymbol(char c) { return c > 32 && c < 127 && !IsDigit(c) && !IsLetter(c); } static bool IsValidPassword(string password) { return password.Any(c => IsLetter(c)) && password.Any(c => IsDigit(c)) && password.Any(c => IsSymbol(c)); }
如果实际上你的意思是其他东西,那么相应地调整上述方法.
css – 如何向django表单字段添加其他类
Form.error_css_class Form.required_css_class
文件:https://docs.djangoproject.com/en/dev/ref/forms/api/#django.forms.Form.error_css_class
因此,通过在表单中定义’error_css_class’和’required_css_class’
class MyForm(forms.Form): error_css_required_css_name = forms.CharField(...)
我可以:
<div> ... </div>
这将输出:
<divhttps://www.jb51.cc/tag/required/" target="_blank">required"> ... </div>
但是我想在字段中添加其他类,例如我想为“name”字段添加“text name”css类.阅读文档,我认为它是可能的.
https://docs.djangoproject.com/en/dev/ref/forms/api/#django.forms.BoundField.css_classes
看完上面后我试着去做
self.fields['name'].css_classes('name text')
这不起作用.我明白了
'CharField' object has no attribute 'css_classes'
我也试过了
name = forms.CharField(css_classes='name text')
类型错误
__init__() got an unexpected keyword argument 'css_classes'
我知道我可以在字段小部件中添加额外的attr
self.fields['name'].widget.attrs['class'] = 'name text'
但我想将css类添加到字段包装器中.
我可以编写一个自定义模板标签…来检查字段名称/类型并返回适当的css类…但如果有内置的东西..我希望保持我的模板清洁:-).
每个字段的硬编码css类也不是一个选项..因为表单字段是动态的.
任何帮助将不胜感激.
解决方法
from django.forms import forms class CustomBoundField(forms.BoundField): def css_classes(self,extra_classes=None): # logic for determining css_classes has been omitted extra_classes = ['name','text'] return super(CustomBoundField,self).css_classes(extra_classes=extra_classes)
在我的表格中,我覆盖了getitem
def __getitem__(self,name): try: field = self.fields[name] except KeyError: raise KeyError('Key %r not found in Form' % name) return CustomBoundField(self,field,name)
django-forms – Django-bootstrap3错误“应包含有效的Django表单”
Parameter “form” should contain a valid Django Form.
我的代码片段如下:
{% load bootstrap3 %} <form action="/detail.html/myForm" method="post"> {%csrf_token %} {% bootstrap_form myForm %} {% buttons %} <button type="submit"> {% bootstrap_icon "star" %} Submit </button> {% endbuttons %} </form>
我对表单操作的含义和{%bootstrap_form myForm%}感到困惑
解决方法
然而,您的{%bootstrap_form myForm%}会在您的模板中加载您的表单.
我们今天的关于如何使Django表单字段仅包含字母数字字符和django 表单类的分享就到这里,谢谢您的阅读,如果想了解更多关于c – 确保字符串仅包含字母数字字符的更好方法?、c# – 检查密码包含字母数字和特殊字符、css – 如何向django表单字段添加其他类、django-forms – Django-bootstrap3错误“应包含有效的Django表单”的相关信息,可以在本站进行搜索。
本文标签: