it-swarm.com.de

Wie kann ich ein Django-Formularfeld nur aus alphanumerischen Zeichen bestehen lassen?

Ich habe dieses Modell 

name = models.CharField(max_length=50, blank=True, null=True)
email = models.EmailField(max_length=50, unique=True)

Ich möchte, dass der Benutzer in beiden Feldern keine anderen Zeichen als alphanumerische Zeichen verwenden darf.

Gibt es irgendeinen Weg?

23
user1958218

Sie würden einen validator verwenden, um zu begrenzen, was das Feld akzeptiert. Ein RegexValidator würde hier den Trick tun:

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])

Beachten Sie, dass es bereits einen validate_email Validator gibt, der die E-Mail-Adressen für Sie validiert. Der alphanumeric-Validator erlaubt keine gültigen E-Mail-Adressen.

53
Martijn Pieters

Geben Sie anstelle von RegexValidator die Validierung in Formularattributen nur wie ... an.

        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 '}))

und so weiter...

Ansonsten müssen Sie den Fehler in Ansichten behandeln. Es hat für mich funktioniert, versuchen Sie diese einfache Methode ... Dies ermöglicht Benutzern, nur Alphabete und Leerzeichen einzugeben

0
Javed