Saltar al contenido

¿Cómo puedo hacer que un campo de formulario de Django contenga solo caracteres alfanuméricos?

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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *