GVKun编程网logo

如何使Django表单字段仅包含字母数字字符(django 表单类)

24

对于想了解如何使Django表单字段仅包含字母数字字符的读者,本文将是一篇不可错过的文章,我们将详细介绍django表单类,并且为您提供关于c–确保字符串仅包含字母数字字符的更好方法?、c#–检查密码

对于想了解如何使Django表单字段仅包含字母数字字符的读者,本文将是一篇不可错过的文章,我们将详细介绍django 表单类,并且为您提供关于c – 确保字符串仅包含字母数字字符的更好方法?、c# – 检查密码包含字母数字和特殊字符、css – 如何向django表单字段添加其他类、django-forms – Django-bootstrap3错误“应包含有效的Django表单”的有价值信息。

本文目录一览:

如何使Django表单字段仅包含字母数字字符(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 – 确保字符串仅包含字母数字字符的更好方法?

c – 确保字符串仅包含字母数字字符的更好方法?

我正在寻找一种简单的方法来检查类型std :: string是否只包含字母数字字符.我的代码如下所示:

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# – 检查密码包含字母数字和特殊字符

c# – 检查密码包含字母数字和特殊字符

如何检查字符串passwordText是否至少包含

> 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表单字段添加其他类

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类也不是一个选项..因为表单字段是动态的.

任何帮助将不胜感激.

解决方法

我想出了如何使用自定义BoundField来做到这一点

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表单”

django-forms – Django-bootstrap3错误“应包含有效的Django表单”

我正在学习 django-bootstrap3的基础知识.运行代码时出现此错误:

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%}感到困惑

解决方法

表单中的操作定义了单击“提交”按钮后将定向到的URL.例如,在您的示例中,一旦您单击提交按钮,它将通过POST请求定向到“/detail.html/myForm”.并且处理此URL的视图将相应地做出响应.

然而,您的{%bootstrap_form myForm%}会在您的模板中加载您的表单.

我们今天的关于如何使Django表单字段仅包含字母数字字符django 表单类的分享就到这里,谢谢您的阅读,如果想了解更多关于c – 确保字符串仅包含字母数字字符的更好方法?、c# – 检查密码包含字母数字和特殊字符、css – 如何向django表单字段添加其他类、django-forms – Django-bootstrap3错误“应包含有效的Django表单”的相关信息,可以在本站进行搜索。

本文标签: