我想为我的表单设置允许的字符。如何在 Django 1.11 中实现此限制?
表格.py
from django import forms
from .models import Customer
class CustomerForm(forms.ModelForm):
class Meta:
model = Customer
fields = (
'order_id','full_name','company','email',
'phone_number','note')
更具体地说,在 'full_name' 、 'company' 和 'note' 字段中,我只想允许数字和字母。在“电子邮件”字段中要允许数字、字母、“-”、“_”、“。”和“@”字符。并且在 'phone_number' 字段中要输入数字和 "+" 、 "#" 、 "()" 字符。
回答1
例如,您可以使用 RegexValidator:https://docs.djangoproject.com/en/1.11/ref/validators/#django.core.validators.RegexValidator
from django.core.validators import RegexValidator
AlphanumericValidator = RegexValidator(r'^[0-9a-zA-Z]*$', 'Only alphanumeric characters are allowed.')
name = models.CharField(max_length=50, validators=[AlphanumericValidator])
但是当有人提供不允许的字符时,您需要处理错误