Esta es la contestación más correcta que encomtrarás dar, pero primero obsérvala pausadamente y valora si se puede adaptar a tu proyecto.
Solución:
Usaría un validador para limitar lo que acepta el campo. A RegexValidator
haría el truco aquí:
from django.core.validators import RegexValidator
alphanumeric = 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])
Tenga en cuenta que ya existe un validate_email
validador que validará las direcciones de correo electrónico por usted; el alphanumeric
validador anterior no permitirá direcciones de correo electrónico válidas.
En lugar de RegexValidator, brinde validación en formularios attributes solo como…
class StaffDetailsForm(forms.ModelForm):
first_name = forms.CharField(required=True,widget=forms.TextInput(attrs='class':'form-control' , 'autocomplete': 'off','pattern':'[A-Za-z ]+', 'title':'Enter Characters Only '))
y así…
De lo contrario, tendrá que manejar el error en las vistas. Me funcionó, pruebe este método simple … Esto permitirá a los usuarios ingresar solo alfabetos y espacios solo
Si entiendes que ha resultado provechoso este post, te agradeceríamos que lo compartas con más entusiastas de la programación y nos ayudes a difundir este contenido.